下面这段程序的while(cin>>word)无法跳出,后面的程序无法走下去,求赐教

#include<iostream>#include<vector>#include<string>#include<cctype>usingnamespacestd;i... #include<iostream>
#include<vector>
#include<string>
#include<cctype>
using namespace std;
int main()
{
vector<string>jihe;
string word;
cout<<"请输入一段文本"<<endl;
while(cin>>word)
jihe.push_back(word);//读入一段文本到vector对象
if(jihe.size()==0){cout<<"不输入任何字?搞毛线?"<<endl;return -1;}
for(vector<string>::size_type ix=0;ix!=jihe.size();++ix)
{for(string::size_type ix2=0;ix2!=jihe[ix].size();++ix2)//上面一行表示输入的单词,下面一行则是单词里具体的字母
if(islower(jihe[ix][ix2]))//判断每个单词里的字母是否为小写
jihe[ix][ix2]=toupper(jihe[ix][ix2] );//小写字母大写
cout<<jihe[ix]<<" ";//输出该单词
if((ix+1)%8==0)//每八个单词输出换行
cout<<endl;
}
return 0;
}
展开
 我来答
金色潜鸟
2013-10-11 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5658万
展开全部
while(cin>>word) jihe.push_back(word); 这样是无限循环。
加一对花括号 就可以了:
while(cin>>word) { //加
jihe.push_back(word);
if(jihe.size()==0){ 。。。return 0;}
...
}; //加
White_MouseYBZ
2013-10-11 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6567万
展开全部
cin>>word什么时候无效?看不出来。所以它要永远循环下去……
更多追问追答
追问
word前面定义是string型,所以我输入个int型就该跳出啊~还有那该如何改动
追答
你怎么输入int型?你以为打入123就是数字一百二十三吗?否,计算机认为它是字符串“123”!C++对于输入的是“数字”还是“字符串”是自动检测接收变量的类型的,这种写法,接收的永远是字符串,不可能是int,这样cin>>word就永远为“真”,它怎么可能跳出?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式