我用一个名为input
的ifstream对象打开了一个.txt文件。如果一行以"("开头,则它不会按照我想要的方式读取。预期输出没有被打印,然后退出循环。我希望只有在到达文件结尾时才跳出while循环。我做错了什么?我的do while循环和.txt文件如下所示。
char c;
int i;
do
{
if(input.peek( ) == '(' || input.peek( ) == ')')
{
input >> c;
cout << c;
}else if(input.peek( ) == '+' || input.peek( ) == '-' || input.peek( ) == '*' || input.peek( ) == '/')
{
input >> c;
cout << c;
}else
{
input >> i;
cout << i;
}
}while(input && input.peek( ) != EOF);
这是一个 .txt 文件,每行都是独立的。
(3)
(3)
4
(5+7)-(5*3)
这是我的输出:
(3)3
cin.ignore();
或许?或者在这种情况下使用cin.get();
也可以。 - Mats Peterssoninput.ignore()
。 - SirRupertIII