我正在制作一个程序,让用户获得这样的菜单

Multiplication 1
Division 2
Subtraction 3
Addition 4
Review 5

他们可以在其中选择一个选项,并将其放在要使用的数字范围内,要处理多少个问题,从而为他们生成数学问题。

那部分有效,我知道了,所以当他们弄错了时,就使用math.txt将问题放到了fout文件中,并且有效。

我现在要尝试的是当他们选择对其进行检查时,它会读取文件中的内容,并给他们带来这些问题。

该文件的格式为(例如)
1 + 1 =
2 * 2 =

我只是不确定如何读取数字并确定它是什么运算(乘法,加法等)。

我试着只是让它读入一个数字
std::ifstream fin("math.txt");
int x;
fin>>x;

但这每次都会返回0

因此,总而言之,我的问题是:如何读取文件并提取方程式(例如4 + 4 = \ n 3/3 =),以便用户可以解决它?

最佳答案

听起来问题是您尚未刷新先前的写操作。您可以使用flush()close()显式地执行您的fout实例。例:

std::ofstream fou("math.txt");
fou << "1 + 1 =";
// Need this: fou.close();

std::ifstream fin("math.txt");
int x;
fin >> x;
std::cout << x;

缺少fou.close()时,我能够重现您的问题。

10-08 12:46