使用C ++编号文件中的行

时间:2014-10-08 01:06:56

标签: c++ file-io iostream fstream

我编写了一个快速的C ++程序,要求用户输入输入文本文件和输出文本文件。然后程序应该对左边距文件中的行进行编号。但是,我似乎无法让它正常工作,它编译得很好,但不会像它应该的那样对行进行编号。我认为这是我的逻辑错误。我对C ++中的文件i / o也不太熟悉,因为我现在只是使用旧式的教科书来学习它。

这是文件:

#include <iostream>
#include <fstream>
#include <string>
#include <cassert>
#include <cstdio>

using namespace std;

int main(void)
{int i = 0 , num = 1;
 string inputFileName;
 string outputFileName;
 string s;
 ifstream fileIn;
 ofstream fileOut;
 char ch;

 cout<<"Enter name of input file: ";
 cin>>inputFileName;
 cout<<"Enter name of output file: ";
 cin>>outputFileName;

 fileIn.open(inputFileName.data());
 fileOut.open(outputFileName.data());

 assert(fileIn.is_open() );
 assert(fileOut.is_open() );

 while (!(fileIn.eof()))
       {ch=fileIn.get();
        if (ch=='\n') num++;
           fileOut << num << "\n";
        s.insert(i,1,ch);     //insert character at position i
        i++;
       }
 fileOut << s;
 fileIn.close();
 fileOut.close();
 return 0;
}

如果有人能指出我正确的方向或给我一些提示,我会永远感激。

1 个答案:

答案 0 :(得分:4)

int i = 0;
string line;
while (getline(infile, line))
{
    outfile << (i++) << " " << line << "\n";
}