老师说c++能解决c语言不能解决的问题,请问什么问题?

聊聊C语言中scanf()怎么解决输入缓冲区殘留‘/n’的问题

聊聊C语言中scanf()怎么解决输入缓冲区残留‘/n’的问题

它而不是等待你再次输入!







理解后就知道可以“吸收”\n可以忽略。

大牛!這个看似很厉害但是是放进去没有任何反应,该过还是过了

在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);

另外请检查scanf的返回值。

好吧! 这是什么软件啊
我记得在论坛里,有一篇帖子就是关于这个的 好像说fflush(stdin)可以清楚缓存区, 
好吧! 这是什么软件啊

上边用的eclipse cdt!如果不能说明问题,那么下边这个呢
这些都是linux里面的软件吗? 那个画箭头的又是什么软件啊呵呵。 我明白你的意思, 这些软件都好高端啊!对于刚入门不久的新人来说!

}关于检测返回值听起来可行,但是觉得我就一个scanf就得着大动干戈吗?显得有点麻烦了您说呢?

峩很高兴地告诉你你理解错误: 请检查scanf的返回值
如果有了上下文,结果永远都是那么的意外:
不意外 你说的情况我很了解 也清楚怎么解決 

我说的问题和这个没什么关系 

前面也有人告诉你了 

个人意见:最好的策略就是在scanf里面永远不用%c!

这个函数一样会读取空白字符

最好的策略昰如果空白字符是无效字符 



我记得在论坛里有一篇帖子就是关于这个的, 好像说fflush(stdin)可以清楚缓存区 
fflush(stdin)在某些实现上的确可以清空缓存

泹是 这个只是编译器扩展而已

题外话,scanf是不是一般只会在考试卷上出现工程中用不到?要是这样的话这个问题是不是可以先放这了?
scanf 鈳能用得到的机会的确是不多了

不过 他的兄弟函数

用法和scanf区别不大

你这个属于加“ ”的!没有新意。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信