C语言中用scanf()和fscanf()读取空格

比如说我将输入的字符赋值给数组a[]
输入:ab sr er
结果为a[0]="a",a[1]="b",a[2]=" ",......
它就输出
a
b

s
r

e
r

scanf和fscanf函数是不能读空格和回车符的,在读取的时候会自动过滤掉这些分隔符。

要想读空格,必须用gets函数,在string.h中有定义,需要实现include它。

gets的用法:
char a[10];
gets(a);

c++下也可以用getline函数,不过建议VC用户不要用,因为微软的C++编译器有个经典的getline bug.在缓冲的时候会多缓冲一行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-16
scanf和fscanf函数是不能读空格和回车符的,在读取的时候会自动过滤掉这些分隔符。

要想读空格,必须用gets函数,在string.h中有定义,需要实现include它。

gets的用法:
chara[10];
gets(a);

c++下也可以用getline函数,不过建议VC用户不要用,因为微软的C++编译器有个经典的getlinebug.在缓冲的时候会多缓冲一行。
第2个回答  2009-01-11
a[i++]=getchar();
第3个回答  2009-01-11
a[i++]=getchar();
第4个回答  2009-01-13
使用GETLINE函数
相似回答