读取.txt文件的第二行并写入另一个.txt文件 - C ++

时间:2016-03-04 15:20:52

标签: c++ string function getline

我有79个.txt个文件:

iRun iDate showerEnergy thetaRad phiRad totalShowers totalParticles  e+ e- μ+ μ-
4001 121125 5e+07 1.61401 0.00118607 1 9929166 6909475 1271116 1399686 151330 148624
-1 4001 121125 5e+07 1.61401 0.00118607 2 9929167 6909475 1271116 1399686 151330 148624

它只有3行,第1行是此行的iRun iDate,第2行以4001开头,第3行以-1开头。我只想阅读这些文本文件的第二行。另外,如果我清楚地阅读它们,我想在文本文件中写下所有79个文本文件的第二行。

2 个答案:

答案 0 :(得分:0)

<fstream>这非常简单。一个非常基本的程序看起来像:

#include <fstream>
#include <string>

int main() {
    std::ifstream infile("indata.txt"); // Open input file
    std::string lineData = "";

    getline(infile, lineData); // Get first line.
    getline(infile, lineData); // Get second line.

    std::ofstream outfile;
    outfile.open("outdata.txt", std::ios_base::app);
    outfile << lineData << std::endl; // Append lineData to outfile. Creates the file if necessary.
    return 0;
}

答案 1 :(得分:0)

尝试写点什么。

psuedo代码看起来像这样

open outfile
for each text file
{
   open file
   skip line
   read line
   write line to out file
   close file
}
close output file

所以你要做的第一件事就是弄清楚如何枚举文件。两个选择:

其余的是简单的c ++文件io

如果这是一个实际问题(而不是类赋值),我会使用awk,perl,sed等而不是编写代码