NinjaZ
NinjaZ

Reputation: 25

Numbering Lines in a File With C++

I wrote a quick C++ program that asks the user for a input text file and an output text file. The program is then supposed to number the lines in the file on the left margin. However, I cannot seem to get it working properly, it compiles fine but does not number the lines like it is supposed to. I believe it is a logical error on my part. I am also not too familiar with file i/o in C++ as I am just learning it now using old school textbooks.

Here is the file:

#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;
}

If anyone could point me in thr right direction or give me some tips I would be eternally grateful.

Upvotes: 0

Views: 1301

Answers (1)

Neil Kirk
Neil Kirk

Reputation: 21773

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

Upvotes: 4

Related Questions