PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
C_and_CPP
[问题] scanf的奇妙bug?
楼主:
d630200x
(DOGE)
2019-02-26 15:37:12
用的编译器是gcc
平台是linux
刚刚写一个无穷循环
char word;
while(1)
{
printf("something\n");
scanf("%c", &word);
}
用%c的话,something一定会重复印两行才会给我输入word
但改成%s的话就又没这个bug了
请问这是什么问题?
作者:
nh60211as
2019-02-26 16:08:00
你有把word印出来看是什么吗
作者:
samuelcdf
(温泉龟)
2019-02-26 16:14:00
&word如果是%s的话, 你对应的word应该会宣告阵列吧. 直接写阵列名结果跟 &阵列名[0] 一样
楼主:
d630200x
(DOGE)
2019-02-26 16:19:00
有加上&word,刚刚没打到主要是我另一支程式有用自字符做判断,且判断式使用都ok,但就是会莫名印两行,后来另外这样写做测试也是一样情况
作者:
samuelcdf
(温泉龟)
2019-02-26 16:26:00
\n还在buffer里面, 所以循环多跑一次
楼主:
d630200x
(DOGE)
2019-02-26 16:31:00
为什么\n会还在buffer里?为什么循环会重跑?
作者:
samuelcdf
(温泉龟)
2019-02-26 16:33:00
每次你输入一个字符之后, 接着会按enter. 那个enter也被当成另外一个输入的字符了
作者:
nthank
(不谢)
2019-02-26 17:38:00
输入的enter也算是一个字符
作者:
MOONRAKER
(㊣牛鹤鳗毛人)
2019-02-26 18:12:00
到底写了多少程式才发现这个大家都知道的伟大bug
作者:
dces4212
(flawless)
2019-02-26 19:01:00
stdin buffer里面还有enter字符
作者:
stupid0319
(征女友)
2019-02-26 19:03:00
月经文
作者:
chchwy
(mat)
2019-02-26 19:53:00
1. 换行符号 2. 这不是bug
作者:
tomsawyer
(安安)
2019-02-26 21:02:00
cin也会啊lul
作者:
Bencrie
2019-02-27 01:28:00
好险你没有真的去 bugzilla 报 bug XD
作者:
IhateOGC
(我讨厌)
2019-02-27 09:45:00
台湾之光!! 快点去报Bug,这很明显是Bug我资料表单就常常遇到这鸟问题
作者:
OhYiDay
(小白Z)
2019-02-27 10:57:00
XD
作者:
TitanEric
(泰坦)
2019-02-27 11:37:00
抱歉我笑了
作者:
wei115
(ㄎㄎ)
2019-02-27 13:53:00
缓冲区日常,特别是格式化和非格式化特别容易遇到
作者:
x246libra
(楓)
2019-02-27 14:11: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不会
作者:
a0928855286
(Alan君)
2019-03-12 01:14:00
那要怎么解决啊?
作者: jxzhe
2019-03-16 17:49:00
https://i.imgur.com/Dmlm2Cb.jpg
继续阅读
Re: [问题] 什么时候用 auto&&?
lovejomi
[问题] 什么时候用 static_cast 而不是dynamic?
lovejomi
[问题] 请问一个定时器信号量的问题
gn00618777
[问题] VScode执行C++程式
st1009
[问题] C语言 == operator 运算
decheng
[问题] 想问一个 timer 的问题
blueblueChen
[问题] 关于正规表示式
nevikw39
[问题] 数值交换的问题
stayhungry
[问题] C语言片段求解
w199381
[问题] 初学C++程式问题提问
birnie007
Links
booklink
Contact Us: admin [ a t ] ucptt.com