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

来源:百度知道 编辑:UC知道 时间:2024/06/07 22:59:34
比如说我将输入的字符赋值给数组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.在缓冲的时候会多缓冲一行。

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

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

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

c++下也可以用getline函数,不过建议VC用户不要用,因为微软的C++编译器有个经典的getlinebug.在缓冲的时候会多缓冲一行。

使用GETLINE函数

getline

a[i++]=getchar();