| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2432 人关注过本帖
标题:c++的标准输入流测试循环问题
只看楼主 加入收藏
sadan20111
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2009-8-1
收藏
得分:0 
回复 10楼 东方罗密欧
10楼分析的很好,学到东西了,但是fflush(stdin)的移植行好像不好,如果是gcc就不能编译通过了,用cin.clear()函数重置输入状态好像就能成功了...
2009-08-02 15:53
Huycwork
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-7-17
收藏
得分:0 
回复 10楼 东方罗密欧
如果我没理解错误的话,足下的意思是:当输入流被标记错误状态,那么输入流的缓冲区将被冻结,由于输入流的输入机制是当按下回车换行符时,从缓冲区的第一个位置指针扫描,扫描到回车换行符之前的字符,然后将回车换行符流在了缓冲区,故而,当数据被冻结时,直接会跳过错误的数据而读入回车换行符,于是输入读入了空字符(据我所知gets函数不能连用就是因为会读入空字符串)。但是尊兄细看,如果是这样的机制,那么我在cin>>arr这行就应该会重置arr的数据才对,因为它读入了空字符串,但实际上,它并没有重置——它没有被改动过——应该是说此时的输入流无效才对。
另外,如果刷新了输入流,我原来在数字字符尾输入的字符串何去何从呢?望启发童蒙。
2009-08-02 18:03
Huycwork
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2009-7-17
收藏
得分:0 
回复 9楼 sadan20111
VISTA还正版不正版的- -|
但看有没有微软授权徽标就知道了,反正我的XP是盗版,最近不知道那个文件又损坏了,整个系统慢得不好说啥。
另外,你如果在用VISTA并且在用VC++6.0的话建议你还是用兼容模式,好多人都说VC和VISTA不兼容的。
2009-08-02 18:07
快速回复:c++的标准输入流测试循环问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013799 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved