标题:结束cmd string输入问题
只看楼主
charderkk
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-8-24
结帖率:100%
已结贴  问题点数:10 回复次数:3 
结束cmd string输入问题
int main(){
      string s;
      cout<<"Please input a sentence:"<<endl;
      
      while(getline(cin,s)){
          vector<string> sentence=split(s);//split 是一个分割句子中单词的函数
      for(i=0;i!=sentence.size();++i)
          cout<<sentence[i]<<endl;
      }
      cout<<endl;
      cout<<"Please input a sentence:"<<endl;

      while(cin>>s)
           cout<<s<<endl;
     
      return 0;
  }
为什么在cmd中执行 while(getline(cin,s)) 这个循环总是不能退出,想问下如何 让getline(cin,s) 是假?
搜索更多相关主题的帖子: input return 
2011-02-24 23:34
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
windows CTRL+Z
Linux CTRL+D
其它系统自己去查
2011-02-25 08:25
homelove
Rank: 2
来 自:厦门
等 级:论坛游民
帖 子:19
专家分:84
注 册:2010-12-21
得分:10 
getline(cin,s)的返回值总是basic_istream类型,在这里返回值总是cin。
要结束while循环的话,可以判断cin的状态,可以用cin.eof()判断是否到了文件结尾,文件结尾在windows下是CTRL+Z.
贴上我的代码:
程序代码:
#include <string>
#include <iostream>
#include <vector>

using namespace std ;

int main(){
    string s;
    cout<<"Please input a sentence:"<<endl;

    while(!getline(cin,s).eof()){
        vector<string> sentence=split(s);//split 是一个分割句子中单词的函数
        for(i=0;i!=sentence.size();++i)
            cout<<sentence[i]<<endl;
    }
    cout<<endl;
    cout<<"Please input a sentence:"<<endl;

    cin.clear();
    while(cin>>s)
        cout<<s<<endl;

    return 0;
}


2011-02-25 09:43
gsdgold
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-6-9
得分:0 
按ctrl+z就结束输入了
2011-02-28 22:46



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




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

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