用的编译器是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