用的編譯器是gcc
平台是linux
剛剛寫一個無窮迴圈
char word;
while(1)
{
printf("something\n");
scanf("%c", &word);
}
用%c的話,something一定會重複印兩行才會給我輸入word
但改成%s的話就又沒這個bug了
請問這是甚麼問題?
&word如果是%s的話, 你對應的word應該會宣告陣列吧. 直接寫陣列名結果跟 &陣列名[0] 一樣
有加上&word,剛剛沒打到主要是我另一支程式有用自字元做判斷,且判斷式使用都ok,但就是會莫名印兩行,後來另外這樣寫做測試也是一樣情況
為什麼\n會還在buffer裡?為什麼迴圈會重跑?
每次你輸入一個字元之後, 接著會按enter. 那個enter也被當成另外一個輸入的字元了
作者:
nthank (不謝)
2019-02-26 17:38:00輸入的enter也算是一個字元
作者:
dces4212 (flawless)
2019-02-26 19:01:00stdin buffer裡面還有enter字元
作者:
chchwy (mat)
2019-02-26 19:53:001. 換行符號 2. 這不是bug
好險你沒有真的去 bugzilla 報 bug XD
台灣之光!! 快點去報Bug,這很明顯是Bug我資料表單就常常遇到這鳥問題
作者:
OhYiDay (小白Z)
2019-02-27 10:57:00XD
作者:
wei115 (ㄎㄎ)
2019-02-27 13:53:00緩衝區日常,特別是格式化和非格式化特別容易遇到
作者:
hunandy14 (Charlott.HonG)
2019-02-27 17:18:00記得是要把sancf 還什麼放到 while 內就好了阿想起來了 好像是 file 才是XDD
作者:
koka813 (shift)
2019-03-01 15:49:00真的是笑了
作者: HanaYukii (ShioRin) 2019-03-07 01:41:00
cin不會
作者: jxzhe 2019-03-16 17:49:00