下面这段程序的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;
} 展开
#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;
} 展开
展开全部
cin>>word什么时候无效?看不出来。所以它要永远循环下去……
更多追问追答
追问
word前面定义是string型,所以我输入个int型就该跳出啊~还有那该如何改动
追答
你怎么输入int型?你以为打入123就是数字一百二十三吗?否,计算机认为它是字符串“123”!C++对于输入的是“数字”还是“字符串”是自动检测接收变量的类型的,这种写法,接收的永远是字符串,不可能是int,这样cin>>word就永远为“真”,它怎么可能跳出?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询