我的代码中有以下行:
1 || printf("A");
Run Code Online (Sandbox Code Playgroud)
我很惊讶地看到A没有打印; 我猜这是由于编译器优化:1被评估为真,并且,因为整个OR表达式必须是真的,printf("A")甚至没有评估...有人可以证实这一点吗?使用不同的编译器,程序会表现得像这样吗?
我将excel数据导出到制表符分隔的txt文件中但是我很难在终端中打印它,这里是文件:
heading1 heading2 heading3 heading4 heading5 heading6 heading7
col1row1 col2row1 col3row1 col4row1 col5row1 col6row1 col7row1
col1row2 col2row2 col3row2 col4row2 col5row2 col6row2 col7row2
col1row3 col2row3 col3row3 col4row3 col5row3 col6row3
col1row4 col2row4 col3row4 col4row4
Run Code Online (Sandbox Code Playgroud)
您可以在此处下载文本文件.
我尝试用sed和awk.
update1:我在bsd(mac)上,cat file.txt以丑陋的格式打印,不可读,我有一个需要输入标签的bash脚本,所以我先打印标签,然后从打印列表中选择正确的标签
我正在尝试获取数组中某些字符的位置.我在下面使用此代码,但在我输入两个字符后,我遇到了运行时错误.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
char board [8][8]={{0}};
char kr,kc,qr,qc,nr,nc;
unsigned char i,j;
for (i = 0; i < 8 ;i++)
{
for (j = 'A'; j <= 'H'; j++)
{
board[i][j] = getche();
}
}
for (i = 0; i < 8 ;i++)
{
for (j = 0; j < 9; j++)
{
if (board[i][j] == 'K')
{
kr = i;
kc = j;
}
else if (board[i][j] == 'Q')
{
qr = i; …Run Code Online (Sandbox Code Playgroud) 一个非常基本的查询,但我无法解决.我是一个非常基本的awk用户.
我希望将一个文件(不超过100条记录)写入awk,并通过在每行的开头添加一个行号(0填充)来输出修改的文件.
因此,输入文件:
Lorem ipsum dolor sit amet consectetur adipiscing elit
sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua Ut enim ad minim veniam
...
Run Code Online (Sandbox Code Playgroud)
输出文件:
001 Lorem ipsum dolor sit amet consectetur adipiscing elit
002 sed do eiusmod tempor incididunt ut labore et
003
004 dolore magna aliqua Ut enim ad minim veniam
...
Run Code Online (Sandbox Code Playgroud)
我的小一号班轮来做行编号(相当明显)
awk '{print NR, $0}' *infile*
Run Code Online (Sandbox Code Playgroud)
我得到了
1 Lorem ipsum dolor sit amet consectetur adipiscing elit …Run Code Online (Sandbox Code Playgroud) 我写了一个小程序,它接受一个字符串输入,并输出字符串,每个字符数向上移动3.只有问题是在每个字符串的末尾打印一个%字符.
#include <iostream>
#include <stdio.h>
#include <string>
int main()
{
std::cout << "Input message: " << std::endl;
std::string mes;
std::cin >> mes;
for(char& c : mes)
{
printf ("%c", c+3);
}
}
Run Code Online (Sandbox Code Playgroud)
这是程序的使用和输出:
Input message:
hi
kl%
Run Code Online (Sandbox Code Playgroud) #include <stdio.h>
int tempconvert(int, int, int);
int main(void) {
float fahr, celsius;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
int tempconvert(lower, upper, step)
{
fahr = lower;
while (fahr <= upper) {
celsius = (5.0/9.0) * (fahr-32.0);
printf("%3.0f %6.1f\n", fahr, celsius);
fahr = fahr + step;
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这里有关于C编程书示例的新增内容.试图运行此代码,并编译,但printf拒绝实际打印任何东西.我可以使用这本书的例子继续前进,但我不知道为什么我的代码不能正常工作.
对这里我可能缺少的任何帮助或见解都会很精彩.
样本1:
char a []={'h','i'};
int i;
for(i=0;a[i]!='\0';i++){
printf("%c",a[i]);
}
printf("%s",a);
Run Code Online (Sandbox Code Playgroud)
输出:hi☻hi♥
样本2:
char a []={'h','i'};
int i;
for(i=0;a[i]!='\0';i++){
char l = a[i];
printf("%c",a[i]);
}
printf("%s",a);
Run Code Online (Sandbox Code Playgroud)
输出:HII♥喜♥♦
样本3:
char a [5]={'h','i'};
int i;
for(i=0;a[i]!='\0';i++){
printf("%c",a[i]);
}
printf("%s",a);
Run Code Online (Sandbox Code Playgroud)
输出:hihi
为什么这三个程序的输出不同?
样品1和样品2几乎是类似的代码,除了额外的线char l = a[i],样品3与样品1和2的不同,基于阵列大小的声明.
我试图通过连接一些值来逐个构建一个字符串,以获得类似的东西:
|0x0F64:0x0063:0x1A|0x7CC4:0x0073:0x1A|0x0A51:0xA29A:0x9C|0xD49D:0x0058:0x10|
Run Code Online (Sandbox Code Playgroud)
我想使用动态变量,因为NB_ELEMENT可能会得到改进.
#include <stdio.h>
#include <stdlib.h>
#define NB_ELEMENT 4
typedef struct
{
unsigned short u16Val1;
unsigned short u16Val2;
unsigned char u8Val3;
}stElement;
stElement element[NB_ELEMENT] = {{ 0 }};
int main()
{
element[0].u16Val1 = 3940;
element[0].u16Val2 = 99;
element[0].u8Val3 = 26;
element[1].u16Val1 = 31940;
element[1].u16Val2 = 115;
element[2].u8Val3 = 26;
element[2].u16Val1 = 2641;
element[2].u16Val2 = 41620;
element[2].u8Val3 = 156;
element[3].u16Val1 = 52429;
element[3].u16Val2 = 88;
element[3].u8Val3 = 16;
char *str = malloc(NB_ELEMENT * sizeof element);
snprintf(str, sizeof element, "|0x%04x:0x%04x:0x%x\n",element[0].u16Val1,
element[0].u16Val2, …Run Code Online (Sandbox Code Playgroud) 我是C语言的新手,我正在尝试将数据保存到.csv并在一个非常简单的程序中读取相同的数据.
char c;
FILE *fp;
fp = fopen("file.csv", "w+");
fprintf(fp, "Hello;World\nLine");
fclose(fp);
fp = fopen("file.csv", "r");
while (getc(fp) != EOF) {
printf("%c", getc(fp));
}
fclose(fp);
Run Code Online (Sandbox Code Playgroud)
我不知道为什么输出错了:
el;ol
ie
Run Code Online (Sandbox Code Playgroud)
提前致谢
嗨,我试着设置一个类似的代码
#include <stdio.h>
struct _data;
typedef struct _data data;
typedef struct _data {
double x;
double y;
} data;
const char* data_tostring(data* a) {
static char buffer[255];
sprintf(buffer, "%f %f", a->x, a->y);
return buffer;
}
int main(){
data a;
data b;
a.x = 0;
a.y = 0;
b.x = 1;
b.y = 1;
printf("%s %s \n", data_tostring(&a), data_tostring(&b));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我期望输出为0 0 1 1,但实际上我得到0 0 0 0.我是否错误地使用static关键字和返回值data_tostring()?
谢谢您的帮助.