 /* '09 Main.cpp' */

 /* Plik nagłowka strumienia pliku */
#include <fstream.h>
 /* Plik nagłówka strumienia wejścia-wyjścia */
#include <iostream>

 /* Start */
main (void)
{
  /* Strumienie plików */
 fstream   InputFile;
 fstream   OutputFile;

  /* Dane */
 char  InputFileName [256];
 char  OutputFileName [256];
 char  TempInLine [256];
 char  TempOutLine [256];

 long  CurrentLine = 0;

  /* Pobierz nazwy plików */
 std::cout << "Nazwa pliku wejsciowego: ";
 std::cin >> InputFileName;
 std::cout << "Nazwa pliku wyjsciowego: ";
 std::cin >> OutputFileName;

  /* Otwórz pliki */
 InputFile.open (InputFileName, ios::in);

 if (InputFile.is_open ())
 {
  OutputFile.open (OutputFileName, ios::out);
  
  if (OutputFile.is_open ())
  {
   while (1)
   {
     /* Zwiększ licznik wierszy */
    if (EOF == InputFile.peek ())
    {
     break;
    }

     /* Pobiesz wiersz i zwiększ wartość licznika */
    CurrentLine ++;
    InputFile.getline (TempInLine, 256);
 
     /* Sformatuj wiersz dodając jego numer i zapisz go do pliku */
    sprintf (TempOutLine, "%ld: %s\n", CurrentLine, TempInLine);
    OutputFile << TempOutLine;
   }

   OutputFile.close ();
  }
  InputFile.close ();
 }

 return 0;
}