程序运行必须输入后必须先敲一个回车,再加CTRL+Z才能结束输入,是什么原因

C++语言 码拜 9年前 (2016-04-15) 1815次浏览
#include<iostream>
#include<vector>
using namespace std;
int fun(string s);
int main(){
vector<int> v1;
vector<int> v2;
char a;
while(cin>>a){
if(a<60)
v2.push_back(a);
else
v1.push_back(a);
}
v2.insert(v2.begin(),v1.begin(),v1.end());
for(int i=0; i<v2.size(); i++)
printf(“%c”,v2[i]);
return 0;
}
解决方案

10

cin读入标准输入,直到遇到文件结束符结束符,而在Windows中CTRL+Z相当于文件结束符EOF,所以你键入CTRL+Z回车后跳出了While循环,才能执行到程序后面的内容。

20

windows认为,假如缓冲中还有其它内容,ctrl+z不表示输入结束,仅代表当前行输入结束,只在单独一个ctrl+z的时候才表示输入结束。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明程序运行必须输入后必须先敲一个回车,再加CTRL+Z才能结束输入,是什么原因
喜欢 (0)
[1034331897@qq.com]
分享 (0)