2016-12-16 20 views
0

ユーザーが '\ n' '\ n'を押すまで入力文字を画面にエコーするプログラムを作成しようとしていますが、get()とput()それはただ一つの '\ n'で壊れます。ご協力いただきありがとうございます。whileループを中断するC++ ' n'

#include "stdafx.h" 
#include <iostream> 
#include <fstream> 
#include <cstdlib> 
using namespace std; 

int main() 
{ 
    char ch1, ch2; 
    do 
    {  
     cin.get(ch1); 
     cout.put(ch1); 
     cin.get(ch2); 
     cout.put(ch2); 
    } while ((ch1 != '\n') && (ch2 != '\n')); 
} 
+0

'&&'ではなく '||'でなければなりません。 – Barmar

+1

あなたはしたくありません((ch1 == '\ n')&&(ch2 == '\ n')))?? – Eric

+0

ありがとうございました。 –

答えて

1

ロジックを回しました。持って

} while ((ch1 != '\n') && (ch2 != '\n')); 

はあなたがここで私は「\ n」を持っていないとし、「\ n」をを持たないと言っていますが、やる「\をn」のように最初の部分は偽した後、第2節です||のC++短絡評価としては無関係です& &の式。

ie。

false && something 

は常にfalseです。

2

あなたは使用してみてください代わりに&&

int main() 
{ 
char ch1, ch2; 
do 
{  
cin.get(ch1); 
cout.put(ch1); 
cin.get(ch2); 
cout.put(ch2); 
} while ((ch1 != '\n') || (ch2 != '\n')); 
} 
0

||を使用する必要があります| | & &の代わりに。

関連する問題