c++ getchar()函数问题
答案:2 悬赏:60 手机版
解决时间 2021-04-05 05:43
- 提问者网友:兔牙战士
- 2021-04-04 16:14
c++ getchar()函数问题
最佳答案
- 五星知识达人网友:千夜
- 2021-04-04 17:27
第一个 getchar() 不会等待你输入 y+回车的,因为前面有个 scanf,scanf 不会删掉输入缓冲区里的回车,所以第一个 getchar() 会直接运行过去,等待你输入的就是第二个 getchar()。你用 VC 在两个 getchar 上都打断点调试一下就明白了。
不要用 getchar, scanf 这些直接操作标准输入缓冲区的函数,目前最好的方法是用 fgets 读入一行(可以是文件流也可以是标准输入即控制台键盘输入),再用 sscanf 读取和解析整数、浮点数这些数据类型,这样能保证输入格式错误时(比如要求数字却输入了非数字),错误的输入不会一直老留在输入缓冲区中,导致循环解析错误。
不要用 getchar, scanf 这些直接操作标准输入缓冲区的函数,目前最好的方法是用 fgets 读入一行(可以是文件流也可以是标准输入即控制台键盘输入),再用 sscanf 读取和解析整数、浮点数这些数据类型,这样能保证输入格式错误时(比如要求数字却输入了非数字),错误的输入不会一直老留在输入缓冲区中,导致循环解析错误。
全部回答
- 1楼网友:风格不统一
- 2021-04-04 18:49
你输入一个,程序输出一个,getchar、putchar都是针对于一个字符来说,例如:你输入123456,程序只获取三次,三个字符,即123
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯