while(cin >> word) 问题 解决给分
while(cin >> word) 问题 解决给分
楼主mattrew(小耗子)2002-09-18 10:35:51 在 C/C++ / C语言 提问 vector<string>stingname;
string word
while(cin >> word)
{
stringname.push_back(word);
}
在C++ primer 书中 用到标准输入
可是cin >>word 出现错误
我自己给改了word.c_str() 还是不成功
应该怎样改正呢?
问题点数:20、回复次数:11Top
1 楼mattrew(小耗子)回复于 2002-09-18 10:39:04 得分 0
我用scanf()可以 可使用操作符 cin ???:(Top
2 楼Solstice(大佛)回复于 2002-09-18 10:56:35 得分 0
string word //这里少了一个分号!Top
3 楼innocentsweeper(水客)回复于 2002-09-18 11:03:57 得分 2
stingname
少了一个r 是 stringnameTop
4 楼chenqing1128(Alex)回复于 2002-09-18 11:05:12 得分 0
值得关注Top
5 楼jyc_nj(老蔣)回复于 2002-09-18 11:46:43 得分 0
我在VC6下试了正常, 如果没有你那些小问题的话.Top
6 楼mattrew(小耗子)回复于 2002-09-18 13:22:47 得分 0
while(cin >> word)
你这样的运行的 正常?
情说清楚些 “如果没有你那些小问题的话.”
Top
7 楼mydadou(mydadou)回复于 2002-09-18 14:09:17 得分 5
vector<string>stingname;
string word
while(cin >> word)
{
stringname.push_back(word);
}
这有错。
别这么写
vector<string>stingname;
string word;
cin >> word
while(!word.length())
{
stringname.push_back(word);
cin >> word
}
我也试过while(cin >>x),可是好像vc++不支持这么写(所有的类型)
Top
8 楼jyc_nj(老蔣)回复于 2002-09-18 14:38:49 得分 5
vector<string> stringname;
string word;
int i=1;
while(cin >> word)
{
stringname.push_back(word);
if( i++ > 2 )
break;
}
cout << "You pressed: " << endl;
vector<string>::iterator iter;
for(iter = stringname.begin(); iter != stringname.end(); iter++)
cout << (*iter) << endl;
我是这样写的,在VC6下可以.
我说的"没有那些小问题"是指,象少写个分号之类.
cin>>word; 调用operator >> (), 返回basic_istream 类型.
因为在while里,再调用operator!() 这个函数returns fail().
也就是输入内容是否合法引起的错误.
Top
9 楼jyc_nj(老蔣)回复于 2002-09-18 14:49:50 得分 0
不行就加个括号
while((cin>>word))Top
10 楼johnmack(爱若琴弦)回复于 2002-09-18 18:36:17 得分 0
还是少分号吧!Top
11 楼fqcd555(Oo等待你oO)回复于 2002-09-18 22:52:03 得分 8
头文件有没有定义好.
有没有解决命名冲突.Top
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
