免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3494 | 回复: 12
打印 上一主题 下一主题

跳出循环的问题. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-20 14:24 |只看该作者 |倒序浏览
RT.. 照着书上敲的代码, 编译运行后发现不能跳出while循环,dev-c++环境. 何解? 谢谢.



  1. #include <iostream>
  2. #include <string>
  3. using namespace std;

  4. int main() {
  5.     string word;
  6.     while(cin >> word) {
  7.         cout << "word read is: " << word << '\n';
  8.     }
  9.    
  10.     cout << "ok: no more words to read: bye!\n";
  11.    
  12.     return 0;
  13. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2007-01-20 14:27 |只看该作者
ok: no more words to read: bye

请明白循环结束条件是啥

论坛徽章:
0
3 [报告]
发表于 2007-01-20 14:35 |只看该作者
我是按书上这么做的:

sdsf.jpg (44.13 KB, 下载次数: 14)

sdsf.jpg

论坛徽章:
0
4 [报告]
发表于 2007-01-20 14:59 |只看该作者
while退出的条件是cin>>word的返回值为false,但是,这个语句只有在输入失败时才会返回false

论坛徽章:
0
5 [报告]
发表于 2007-01-20 15:07 |只看该作者
这么说是书上错了..? 我看的是c++Primer第3版 .. 听说很经典 应该不会一开始给出的代码就有错吧..

sssss.JPG (26.57 KB, 下载次数: 15)

sssss.JPG

论坛徽章:
0
6 [报告]
发表于 2007-01-20 15:54 |只看该作者
用Ctrl+D或者Ctrl+Z退出

论坛徽章:
0
7 [报告]
发表于 2007-01-20 16:01 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
8 [报告]
发表于 2007-01-20 16:47 |只看该作者
原帖由 Qlin 于 2007-1-20 15:07 发表
这么说是书上错了..? 我看的是c++Primer第3版 .. 听说很经典 应该不会一开始给出的代码就有错吧..

默认情况下, cin>>word 在下列三种情况下结束提取:
    1)遇到文件结束符。
   2)遇到空白字符(空格、Tab、换行)。
   3)如果已经提取了istream.max_size()个字符,那么提取结束,并且将调用istream.setstate(ios_base::failbit),即此时返回的istream测试为假。
如果没有提取到字符(包括空白字符),那么将调用istream.setstate(failbit),此时测试istream为假。

所以,你这儿要中止循环应该用文件结束符:
   Win——Ctrl+Z              Unix——Ctrl+D
并且,应该是输入行的第一个字符就是文件结束符,然后回车才能结束循环。

论坛徽章:
0
9 [报告]
发表于 2007-01-20 17:05 |只看该作者
谢谢楼上各位.. 发现C++真是深邃如海.. 第一个例子就差点呛死在里面...

论坛徽章:
0
10 [报告]
发表于 2007-01-20 17:49 |只看该作者
原帖由 Qlin 于 2007-1-20 17:05 发表
谢谢楼上各位.. 发现C++真是深邃如海.. 第一个例子就差点呛死在里面...

没有那么深奥,只是你没理解它的结束条件罢了。流是C++里面比较难掌握的内容了,用熟练了就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP