我们经常会循环从标准输入数据,并进行处理。有时候会用while循环来处理输入,但是我们该怎么退出该输入循环?
参考标准库对getline和cin的介绍: http://www.cplusplus.com/reference/string/basic_string/getline/
在windows平台,stdin输入流的EOF标志是 ctrl + z。


while(getline(cin, temp))
{
.....
}
while(cin >> temp)
{
.....
}
参考标准库对getline和cin的介绍: http://www.cplusplus.com/reference/string/basic_string/getline/
http://www.cplusplus.com/reference/iostream/cin/?kw=cin
当读取到eof的时候getline/cin函数将不再读取数据并退出while循环。
在windows平台,stdin输入流的EOF标志是 ctrl + z。
在unix/linux平台,stdin输入流的EOF标志是 ctrl + d。
实例1:
/*************************************************************************
> File Name: 1sort_copy.cpp
> Author:
> Mail:
> Created Time: 2015年12月29日 星期二 20时12分36秒
************************************************************************/
#include<iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <iterator>
using namespace std;
int main()
{
vector<string> v;
string temp;
while(getline(cin, temp)){
v.push_back(temp);
}
sort(v.begin(), v.end());
cout << "This is your sorted string:";
copy(v.begin(), v.end(), ostream_iterator<string> (cout, "\n"));
return 0;
}
实例2:
#include<iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <iterator>
using namespace std;
int main()
{
vector<string> v;
string temp;
while(cin >> temp){
v.push_back(temp);
}
sort(v.begin(), v.end());
cout << "This is your sorted string:";
copy(v.begin(), v.end(), ostream_iterator<string> (cout, "\n"));
return 0;
}