gpt4 book ai didi

c++ - 我如何把它变成一个循环?

转载 作者:太空宇宙 更新时间:2023-11-04 16:05:48 24 4
gpt4 key购买 nike

我是 C++ 的新手,正在尝试将以下语句转换为从文件中读取的表达式循环。当我从终端提供输入时,以下系列语句工作正常:

int main()
{
Expression* expression;
char paren, comma;
cout << "Enter expression: ";
cin >> paren;
expression = SubExpression::parse();
cin >> comma;
parseAssignments();
cout << "Value = " << expression->evaluate() << endl;

return 0;
}

但是我不想从 cin 中传递一个表达式,我必须在终端输入它,我想逐行读取一个文件并将其传递给程序(程序终止于换行符)。

我已尝试执行以下操作,但程序被锁定在 cin。关于如何修改我的代码以执行此操作的任何建议?

int main()
{
ifstream inFile;
inFile.open("input.txt", ifstream::in);

string line;
while(inFile.good())
{
Expression* expression;
char paren, comma;
cin >> line;
paren = line[0];
expression = SubExpression::parse();
cin >> line;
comma = line.back();
parseAssignments();
cout << "Value = " << expression->evaluate() << endl;
}

inFile.close();
}

最佳答案

你想从文件中读取,所以使用 inFile 而不是 cin

int main()
{
ifstream inFile;
inFile.open("input.txt", ifstream::in);

string line;
while(inFile.good())
{
Expression* expression;
char paren, comma;
inFile >> line; // change this line
paren = line[0];
expression = SubExpression::parse();
inFile >> line; // change this line
comma = line.back();
parseAssignments();
cout << "Value = " << expression->evaluate() << endl;
}

inFile.close();
}

关于c++ - 我如何把它变成一个循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com