我正在制作一个程序,让用户获得这样的菜单
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()
时,我能够重现您的问题。