C ++' \ n'打破一个循环

时间:2016-12-16 21:24:08

标签: c++

我尝试编写一个程序,使用get()和put()将输入字符回显到屏幕,直到用户按下' \ n' ' \ n'但它只打破了一个' \ 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'));
}

3 个答案:

答案 0 :(得分:2)

您应该使用const代替||

&&

答案 1 :(得分:1)

你已经改变了你的逻辑。

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

你在这里说我没有'\ n'并且没有'\ n'但是你有一个'\ n'所以第一部分是假的然后第二个子句与C ++无关||的短路评估&安培;&安培;表达式。

false && something 

总是假的。

答案 2 :(得分:0)

尝试使用| |而不是&amp;&amp ;.