我是 C++ 的新手。尝试了以下代码:
while((char c = cin.get()) != 'q')
{ //do anything
}
当我尝试编译时,它失败了
错误:“char”之前的预期主表达式。
请帮助我理解这一点
我是 C++ 的新手。尝试了以下代码:
while((char c = cin.get()) != 'q')
{ //do anything
}
当我尝试编译时,它失败了
错误:“char”之前的预期主表达式。
请帮助我理解这一点
您不能将声明作为表达式的一部分。
while ((char c = cin.get()) != 'q') { ...
// |----------------| <---------------------- this is a declaration
// |-------------------------| <-------------- this is an expression
您可以在循环的括号内直接声明(而不是在任何嵌套括号中):
while (char c = cin.get()) { ...
但这停止了!c
,这不是你想要的。
这将起作用:
while (int c = cin.get() - 'q') { // ugly code for illustrative purpose
c += 'q';
...
}
这也将是:
for (char c; (c = cin.get()) != 'q'; ) { // ugly code for illustrative purpose
...
}
更新:另见这个 SO question。
尝试这个:
char c;
while((c = cin.get()) != 'q')
{ //do anything
}
您在括号内声明变量,因此出现错误:
while (char c = cin.get() != 'q')