关于c++中的CTRL+Z的问题(附上代码)

#include<iostream>#include<cstdlib>#include<map>#include<string>usingnamespacestd;int... #include <iostream>
#include <cstdlib>
#include <map>
#include <string>

using namespace std;

int main()
{
map< string,int > word_count;
map< string,int >::iterator m_iter;
string word;
string find_word;
int occurs = 0;

cout<<"please input a word and press (Ctrl+Z) to end"<<endl;
while(cin>>word)
{
pair< map<string,int>::iterator, bool > ret =
word_count.insert( make_pair( word,1 ));
if(!ret.second)
{
++ret.first->second;
}
}

for(m_iter = word_count.begin(); m_iter != word_count.end(); ++m_iter)
{
cout<<m_iter->first<<" occurs "<<m_iter->second<<" times "<<endl;
}

cout<<"please input the word you want to find: ";
cin>>find_word;
map< string,int >::iterator it= word_count.find(find_word);
if( it != word_count.end() )
occurs = it->second;
cout<<"the word ‘" <<find_word
<< "’has occurs "<<occurs<<" times "<<endl;

system("pause");
return 0;
}

这个是今天实验的时候遇到的问题,如下

这是一个统计单词输入个数的程序,在while部分,进行单词输入,

然后结束输入使用的方法是"ctrl+z",但是这样造成了一个问题。

就是现在的搜索部分,被直接跳过。

在网上找了一些资料,说是"ctrl+z"是结束目前窗口的输入流。

这样的话,那么有没有类似的方法可以停止while的循环,然后又不用去

停止整个窗口的输入流呢?

请各位老手指点一下,谢谢!

注:使用的IDE是 DEV C++;
展开
 我来答
VisualBoy2009
2009-08-04 · 超过39用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:124万
展开全部
你可以输入一个不是英文字母的字符作为结束标志,也可以事先要求用户输入字符串的长度。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清澈且谦卑灬典范
2009-08-04 · TA获得超过262个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:278万
展开全部
while(cin>>word)
{
pair< map<string,int>::iterator, bool > ret =
word_count.insert( make_pair( word,1 ));
if(!ret.second)
{
++ret.first->second;
}
}
cin.clear(); //把输入流清空就可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式