3

ここでC++に少し新しい。以下のようなことは可能でしょうか?

int temp;
while(cin >> temp != -9999){//Do something with temp}

その正確なコードを機能させることはできませんが、そのようなことが可能になるはずだと感じています.

編集 次のことも試しました:

while(cin.getline(temp) != -9999){//Do something with temp}

まだ何もありません。getline()文字列でのみ機能しますか?

4

1 に答える 1

6

はい、そうです:

while (std::cin >> temp && temp != -9999)

ただし、C++ での演算子の優先順位は煩わしいので、次のように使用します。

while (std::cin >> temp) {
    if (temp == -9999)
        break;

理由は、それstd::cinがストリームであるということです。そのため、それから読み取るとストリームが返されるため、次のようなことができます。

std::cin >> temp >> temp2;
于 2013-04-15T03:59:37.457 に答える