C上的阅读空间
我试图读一系列的字符,比如C中的以下字符:C上的阅读空间,c,char,scanf,C,Char,Scanf,我试图读一系列的字符,比如C中的以下字符: &&&&&&&&\n& & & &\n& & &&&& &\n (请注意,开头也有空格) 我用了一个圆圈“while”来表示: 因为我正在将字符“存储”到我正在使用的结构数组中 但是,程序一直忽略第一个空格,只从第一个“&”出现开始存储 有什么建议吗?提前谢谢你,对不起我的英语不好 以下是
&&&&&&&&\n& & & &\n& & &&&& &\n
(请注意,开头也有空格)
我用了一个圆圈“while”来表示:
因为我正在将字符“存储”到我正在使用的结构数组中
但是,程序一直忽略第一个空格,只从第一个“&”出现开始存储
有什么建议吗?提前谢谢你,对不起我的英语不好
以下是代码的一部分:
while(scanf("%c",&lab[i].simb)!=EOF){
lab[i].x=x;
lab[i].y=y;
if(lab[i].simb=='\n'){
x=0;
y++;
} else x++;
i++;
}
如果您使用的是gcc,我建议您使用getline,但是如果您想读取每个字符,请使用getc而不是scanf。。。对不起,我的英语也很差……这个问题太宽泛了。请提供正在使用
scanf
的代码片段。只需读取整行代码并处理缓冲区中的每个字符。从长远来看,麻烦更少。使用fgets()并逐个字符检查结果行。给我们代码段。您确定格式字符串没有%c“
(带前导空格)吗?使用scanf();它是有效的,但不是必需的。您可以改用getchar()
。您正在测试来自scanf()
的结果;这很好,干得好。您可以始终添加一个printf(“读取:%d(%c)\n),lab[i].simb,lab[i].simb)将>编码到循环中,以便准确地看到正在读取的字符值。
while(scanf("%c",&lab[i].simb)!=EOF){
lab[i].x=x;
lab[i].y=y;
if(lab[i].simb=='\n'){
x=0;
y++;
} else x++;
i++;
}