data.txt
包含以下信息:firstName
,lastName
,salary
,increment
。
James Chong 5000 3
Peter Sun 1000 5
Leon Tan 9500 2
我想阅读data.txt
,进行必要的计算,并将3个变量的输出存储在newData.txt
中:
firstName
,lastName
,updatedSalary
(salary
* percentageIncrement
)
我只是设法在data
中继续阅读和显示信息。
以下是我的代码:
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
using namespace std;
int main()
{
string filename = "data.txt";
ifstream infile;
infile.open(filename);
//if file cannot open, exit program
if (!infile.is_open()){
exit(EXIT_FAILURE);
}
string word;
infile >> word;
while(infile.good()){
cout << word << " ";
infile >> word;
}
system("pause");
return 0;
}
我知道有没有可以使用的参考资料?谢谢
答案 0 :(得分:1)
我不完全确定这个问题,但你可能会发现 substr 函数很有用(如果你需要处理数据),关于写入文件,你可以创建一个 ofstream输出(&#34; newData.txt&#34;),只需在那里写出结果。 (输出&lt;&lt;结果)。如果你不想用 substr 来解决它,那么 BOOST 中还有一个tokenizer库。
答案 1 :(得分:0)
你期望每一行有四个用空格分隔的单词,所以就像在每次迭代中从 while(infile.good()) {
string first_name, last_name;
infile >> first_name;
infile >> last_name;
unsigned int salary, increment;
infile >> salary;
infile >> increment;
}
中提取它们一样简单:
infile
当然,如果线条格式不正确,那么在尝试提取各个部分之后,您应该检查{{1}}是否良好。 你可以在这里找到更好的,但这可以满足你的基本需求。