我正在尝试编写一个程序来读取文本文件并执行它在文本文件中读取的数学运算。
例子:
+ 45 35
我正在使用输入流读取该文本 block 并在函数中的数字之前执行数学运算。
我已经为正确的语法寻找了一个多小时,我快要抓狂了。
我完全陷入了弄清楚如何让流式函数读取每个字符直到出现空白,但它一次读取一个字符并且 getline 甚至不是一个我认为对我的事业有帮助的可识别函数。
这就是我正在使用的,一次读取一个字符
char ch;
inFile >> ch;
命令 instream 读取一段文本直到到达空格的正确语法是什么?有人可以建议我如何将文本文件中的数字加在一起吗?
最佳答案
您专注于使用文本 block 而不是仅仅读取值是否有特定原因?
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
istringstream inf(" + 42 100");
char op;
int num1, num2;
inf >> op >> num1 >> num2;
cout << "Op: " << op << endl;
cout << "Num1: " << num1 << endl;
cout << "Num2: " << num2 << endl;
// pin the op-char to the first operand
istringstream inf2("-43 101");
inf2 >> op >> num1 >> num2;
cout << "Op: " << op << endl;
cout << "Num1: " << num1 << endl;
cout << "Num2: " << num2 << endl;
return 0;
}
输出
Op: +
Num1: 42
Num2: 100
Op: -
Num1: 43
Num2: 101
如果你想用一个保证每行只有一个操作和两个操作数的输入文件来做到这一点,它会是这样的:
ifstream inf(fname);
char op;
int o1, o2;
while (inf >> op >> o1 >> o2)
{
// use your op and operands here.
// switch (op)... etc.
}
关于c++ - 文件 I/O C++ ifstream 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15261391/