私は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の質問も参照してください。
これを試して:
char c;
while((c = cin.get()) != 'q')
{ //do anything
}
括弧内で変数を宣言しているため、エラーが発生します。
while (char c = cin.get() != 'q')