我有以下代码
int main()
{
Expression* expression;
char paren, comma;
string program;
freopen("input", "r", stdin);
while (true)
{
cout << "Enter expression: ";
cin >> paren;
expression = SubExpression::parse();
cin >> comma;
parseAssignments();
cout << "Value = " << expression->evaluate() << endl;
if(cin.eof())
break;
}
return 0;
}
void parseAssignments()
{
char assignop, delimiter;
string variable;
int value;
do
{
variable = parseName();
cin >> ws >> assignop >> value >> delimiter;
symbolTable.insert(variable, value);
}
while (delimiter == ',');
}
我只想使用 cin 从文件中读取多个表达式。无论我将 cin.eof() 放在 while 循环中的哪个位置,程序都会再读取一次输入,然后崩溃。我也尝试过 cin.peek() 但仍然是相同的输出。建议一种阅读EOF的方法。