【发布时间】:2014-03-26 20:33:04
【问题描述】:
这是一个两部分的问题,我希望我能理解。我会根据需要进行编辑!我正在尝试编写一个程序,该程序将从输入文件中连续进行计算。文本文件将如下所示:
int + 25 10
double / 5.5 8.5
...
每个实例都以 int、double、float 等类型开头,然后是计算类型(加法、减法等),然后是两个数字。我希望能够连续读取每个并将总和、乘积等输出到输出文件中。例如,如果我们使用上面的第一个示例,文件中的输出将是:
int 25 10 = 35
我有代码可以进行以下计算:
void doAddition(ifstream &inFile) {
int num1, num2;
inFile >> num1 >> num2;
cout << num1 << num2 << " = "<< (num1+num2) << '\n'; }
唯一的问题是我不知道如何添加变量的类型(我尝试过使用字符串,但它似乎不起作用),例如“int”或“double”,所以我得到:
25 10 = 35
代替:
int 25 10 = 35
您可能看到的第二个问题是,当我真的想将信息添加到输出文件时,我目前正在使用“cout”在屏幕上显示信息。以下是更多信息:
我用来移动到下一行的:
void readToNextLine(ifstream& inFile) {
string t1, t2;
inFile >> t1 >> t2; }
我的 Main 中的代码:
ifstream inFile;
//ofstream outFile;
char ch;
int num1, num2;
inFile.open("infile.txt");
//outFile.open("outfile.txt");
if (inFile.is_open()){
inFile >> ch;
while (!inFile.eof())
{
switch (ch)
{
case '+':
doAddition(inFile);
break;
...
如您所见,我注释掉了 ofstream 部分,因为我无法让它正常工作。有什么建议么?我现在打开了大约 10 个窗口和两本 C++ 书籍,只是想把它们合乎逻辑地放在一起!
编辑:我不确定开关是否是最好的方法。我需要程序看到“int”并意识到它是一个词。如果我使用 4 种变量类型,如 int、double、float 和 long,也许我可以让它检查每个变量的第一个字母:i、d、f、l,然后一旦它知道它可以进入 +、-、等检查。感觉如果按照逻辑执行此操作,我可以使用一系列课程需要更多时间,但我只是不确定从哪里开始。
【问题讨论】:
-
如果需要任何其他信息或者我没有说清楚,请告诉我,我会相应地编辑我的帖子!
-
我建议将其分解为单独的简洁问题。它对 SO 用户的回答看起来更有吸引力,也会迫使你分解它。