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鍵會自動在字元串後面添加'