我HEVE一個下面的代碼什麼是選項scanf vs獲取vs fgets?
while (a != 5)
scanf("%s", buffer);
這種運作良好,但不採取任何空間中提到的詞與詞之間,或者換句話說,scanf函數結束。如果我們用空格來掃描
如果我用這個
while(a != 5)
scanf("%[^\n]", buffer);
它只能一次是壞
我從來沒有使用gets()
因爲我知道有多少討厭我t是..
我最後的選擇是這個
while(a != 5)
fgets(buffer, sizeof(buffer), stdin);
所以我的問題是
- 爲什麼第二個命令是不是在循環內的工作?
- 我有什麼其他選項掃描字符串與空格?
什麼是'a'?它在哪裏改變?初始值是什麼?你想做什麼? – harald
我會去的第三個選項,然後修剪換行符如圖所示[這裏](http://stackoverflow.com/a/28462221/3386109) – user3386109
在所有3種情況下,檢查scanf函數的'的返回值()/在使用'buffer'之前,必須使用fgets()'。 – chux