c语言getsscanf
1. c语言gets 和 scanf
我忍不住说一下,
希望已经给出答案的同学们不要介意。
scanf("%s%f",
name[i],
&score);
如果你输入
“abc
1234”
(注意
引号不是输入的数据,只是为了方便阅读)
这个时候
name[i]会读取数据的,但是读取的数据遇到空格就视为读取结束。这样剩余下的数据就是
一个空格外加1234.
当score开始读取的时候,读到的第一个数据是一个空格,而不是希望的float类型的数据,因此整个缓冲区的流都乱了,所有的数据全部没有用处。
解决的办法就是在
%s与%f之间加上一个空格,就可以解决这个问题。
2. C语言字符输入函数scanf和gets有何不同
可以用如下两种方式输入字符串,示例程序段如下:
char
string[15];
gets(string);
/*遇到回车认为输入结束*/
scanf("%s",string);
/*遇到空格认为输入结束*/
。。。
所以在输入的字符串中包含空格时,应该使用gets输入。
3. C语言中scanf与gets的疑惑,请高手们帮解决
用%s输入字符串的时候,空格、回车符、tab符作为输入数据的分隔符不能被读入,当遇到这些分隔符的时候,系统认为输入结束。从键盘输入how
are
you?,实际只是把how输入到了数组,因此,用%s输入字符串的时候不能带有空格、回车符、tab符。而专门的字符输入函数gets就可以输入。当然了,也可以不用gets输入,办法就是初始化,既是:char
str[100]="how
are
you?"
4. C语言中scanf()与gets()函数的区别,哪一个可以读入空格啊
1.scanf不能接受空格、制表符Tab、回车等;对末尾回车符的处理:把回车符保留在缓存中。
gets能够接受空格、制表符Tab和回车等;对末尾回车符的处理:接收回车,但把回车替换为 。
2.scanf :当遇到回车,空格和tab键会自动在字符串后面添加'