2016-07-25 19 views
0

使用している間に終了:string inを使用してループ私は次のコードで助けが必要な文字

を次のループが終了:

int main() { 
string in; 
while(1){ 
    cin >> in; 
    if (in == "|") 
     break; 
} 

しかしint inを使用して、次のループが終了していない:

int main() { 
int in; 
while(1){ 
    cin >> in; 
    if (in == '|') 
     break; 
    else 
     cout<< in << "\n"; 
} 

私は最後を終了したい示されたスニペット。 int inを使用することは可能ですか? 私は投稿C++ Terminate loop using a char input to intを見ましたが解決策はありません。

答えて

0

文字はコンピュータで小数の整数として表されますが、intcharと同じではありません。 C++ではありません。

あなたはint変数に読み込むとき>>オペレータが数値としてではなく文字として、整数として入力を解析しようとします。

あなたは文字を読みたい場合は、文字を読む:

char in; 
std::cin >> in; 

あなたが整数を読み取ろうとし、入力が数字でない場合は、入力者が失敗します。例えば、 this very simple example

+0

それは行いますが、 'int in 'を使って終了する方法を教えてください。 –

+1

@DeepChandraしかし、整形された '>> '演算子を使って単一の文字を読むために' int'変数を使うことはできません。それは単に可能ではありません。次に、* 2つの変数を使用する必要があります:文字を読み込むための1つの 'char'変数と、' char'変数の値に割り当てられたもう一つの 'int'変数。または、フォーマットされていない['std :: istream :: read'](http://en.cppreference.com/w/cpp/io/basic_istream/read)関数を使用します(これは、プラットフォームによっては正しく動作しない可能性があります) 。 –

関連する問題