从文件

时间:2018-11-26 22:19:24

标签: c++

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

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 =),以便用户可以解决它?

1 个答案:

答案 0 :(得分: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()时,我能够重现您的问题。