while(cin>>string) 结束循环疑问

tim8880878 tim8880878 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
程序1:

#include <iostream>
#include <string>

using namespace std;

int main()
{
string s;
while(cin>>s)
{

}
cout<<s;
cout<<endl;
return 0;
}



程序2:

#include <string>
#include <vector>
#include <iostream>
using namespace std;

struct Pair
{
string name;
double val;
} ;

vector<Pair> pairs;

double& value(const string& s)
{
for(int i = 0;i < pairs.size(); ++i)
if(s == pairs[i].name) return pairs[i].val;
Pair *p = new(Pair) ;
p->name=s;
p->val =0;
pairs.push_back(*p);
return pairs[pairs.size() - 1].val;
}

int main()
{
string buf;
while(cin >> buf)
value(buf)++;
for(vector<Pair>::const_iterator p = pairs.begin(); p != pairs.end(); ++p)
cout << p ->name << ":" << p->val << '\n';
return 0;
}


问:为什么结束程序1的输入只要按回车就行,而结束程序2的输入要暗ctrl+z 加回车
工具:vc++
...全文

相关推荐

评论 11
收藏 已收藏
分享
返回顶部
tim8880878
C++ 语言 65,214 成员 250,514 内容