C ++阅读文本文件和存储数据

时间:2018-05-20 09:32:11

标签: c++ file-io

data.txt包含以下信息:firstNamelastNamesalaryincrement

James Chong 5000 3
Peter Sun 1000 5
Leon Tan 9500 2

我想阅读data.txt,进行必要的计算,并将3个变量的输出存储在newData.txt中:

firstNamelastNameupdatedSalarysalary * 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;
}

我知道有没有可以使用的参考资料?谢谢

2 个答案:

答案 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}}是否良好。 你可以在这里找到更好的,但这可以满足你的基本需求。