标题:关于 while(getline(cin,line))的问题,
取消只看楼主
sadan20111
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2009-8-1
结帖率:100%
已结贴  问题点数:20 回复次数:4 
关于 while(getline(cin,line))的问题,
#include   <iostream>
#include  <string>  
  
  using namespace std;  
  
  main()   
  { int i=3;
   string   line;   
  while(getline(cin,line))
  {  
  cout<<line<<endl;
  
  }
 cout<<i<<endl;
  
  
  return 0;
  }
 
 
这个程序好像是个死循环,怎么能跳出循环,执行cout<<i<<endl;这句话呢,while是以istream类对象为判断条件的,那不就是遇到结束或是无效输入就跳出循环体吗?那string中,getline不是不能忽略换行符?那回车了,为什么还挑不出来呢?怎么能跳出来啊,就是什么样子才是条件才为假的啊??谢谢
搜索更多相关主题的帖子: line cin 
2009-08-01 14:01
sadan20111
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2009-8-1
得分:0 
回复 2楼 pangding
谢谢2楼,但是也是不行的,我输入结束符也是不可以的,还是挑不出来,还是被当成有效字符了,什么原因呢??2楼能试试程序吗?我是VISTA的系统,是不是结束符不一样呢??
2009-08-01 20:59
sadan20111
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2009-8-1
得分:0 
回复 6楼 pangding
谢谢各位,我用的也是VC6.0,可是我输入一行文字以后,输入几次结束符都没有用,要按回车输出文字以后,然后输入结束符,要按超过好几次,就是说要回车几次,每次回车都输入结束符,才能跳出循环。。。。请问5楼,两次你就跳出循环了吗啊?你是在输入文字以后输入结束符吗??
2009-08-02 12:33
sadan20111
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2009-8-1
得分:0 
回复 8楼 leeco
输入几次ctrl+z啊,VISTA难道和XP的不一样吗?
2009-08-02 15:09
sadan20111
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2009-8-1
得分:0 
回复 10楼 leeco
谢谢,恩,要首行输入,是不是和输入缓冲区有关系吧。当getline()输入遇到换行符停止输入的时候,那'\n'会留在缓冲区吗?还是被自动清空了呢??
2009-08-03 09:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-281253-1-1.html




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

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