C++ 为什么这个while循环的计算结果永远不会为true?

C++ 为什么这个while循环的计算结果永远不会为true?,c++,cin,C++,Cin,如果文件具有坐标列表和字符: (1,2,3,A) // blah blah (10,20,30,B) (11,22,33,C) while循环中的表达式的计算结果永远不会为true,这是为什么 string str = ""; char aa, cc, ee, gg, hh, ii; int bb, dd, ff; while(cin >> aa >> bb >> cc >> dd >> ee >> ff >>

如果文件具有坐标列表和字符:

(1,2,3,A)
// blah blah
(10,20,30,B)
(11,22,33,C)
while
循环中的表达式的计算结果永远不会为true,这是为什么

string str = "";
char aa, cc, ee, gg, hh, ii;
int bb, dd, ff;
while(cin >> aa >> bb >> cc >> dd >> ee >> ff >> gg >> hh >> ii ||
      cin >> str) {
    if(str != "") {
        cout << str << endl;
    }
    else {
        cout << aa << " " << bb << " " << cc << " " << dd << " " << ee << " " <<  ff << " " << gg << " " << hh << " " << ii << endl;
    }
}
string str=”“;
字符aa、cc、ee、gg、hh、ii;
int-bb,dd,ff;
而(cin>>aa>>bb>>cc>>dd>>ee>>ff>>gg>>hh>>ii||
cin>>str){
如果(str!=“”){

cout一旦流进入失败状态,即设置了
std::ios_base::failbit
,流在清除流之前不会做任何事情。也就是说,如果第一次输入失败,第二次输入也会失败。可以做的是:首先读取字符串,然后使用字符串流查看它是否解码into组成部分。

一旦流进入失败状态,即设置了
std::ios\u base::failbit
,流在清除流之前不会做任何事情。也就是说,如果第一次输入失败,第二次输入也会失败。可行的方法是:先读取字符串,然后使用字符串流查看如果它解码成成分。

请使用
std::vector
,尽量避免告诉我们事情“不起作用”,请描述您得到的具体错误/不正确的输出。这使我们更容易诊断问题抱歉!我刚刚编辑了它。由于某些原因,我的while循环的计算结果从未为true。请使用
std::vector
。尽量避免告诉我们事情“不起作用”,请描述您得到的具体错误/不正确的输出。这使我们更容易诊断问题抱歉!我刚刚编辑了它。由于某些原因,我的while循环的计算结果从未为true。