Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C上的阅读空间_C_Char_Scanf - Fatal编程技术网

C上的阅读空间

C上的阅读空间,c,char,scanf,C,Char,Scanf,我试图读一系列的字符,比如C中的以下字符: &&&&&&&&\n& & & &\n& & &&&& &\n (请注意,开头也有空格) 我用了一个圆圈“while”来表示: 因为我正在将字符“存储”到我正在使用的结构数组中 但是,程序一直忽略第一个空格,只从第一个“&”出现开始存储 有什么建议吗?提前谢谢你,对不起我的英语不好 以下是

我试图读一系列的字符,比如C中的以下字符:

   &&&&&&&&\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++;
}