Witam,
Mam problem z programem, który mam uruchomić w wierszu poleceń Windows. Zadanie polega na tym aby utworzyć plik tekstowy z jakąś zawartością a następnie skopiować jego zawartość do nowego pliku. Program powinien pobierać nazwy plików za pośrednictwem wiersza poleceń. Program powinien informować o ewentualnym niepowodzeniu przy próbie otwarcia.
Przy odpalaniu w wierszu poleceń wyświetla się komunikat z tego fragmentu programu:
if (!fin.is_open())
{
cerr << "Nie mozna otworzyc pliku "<<argv[1]<<" \n";
exit(EXIT_FAILURE);
}
Plik, z którego program pobiera dane wypełniłem, więc nie wiem czemu wyskakuje taki o to komunikat.
Poniżej kod całego programu:
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <cstdlib>
int main(int argc, char *argv[])
{
using namespace std;
cerr << "Program kopiuje zawartosc jednego pliku do drugiego\n\n";
if (argc == 1)
{
cerr << "Podales tylko jeden plik -> " << *argv[0] << endl;
exit(EXIT_FAILURE);
}
if (argc == 3)
{
ifstream fin;
fin.open(argv[1]); //otwieranie pliku z oryginalną zawartością
if (!fin.is_open())
{
cerr << "Nie mozna otworzyc pliku "<<argv[1]<<" \n";
exit(EXIT_FAILURE);
}
char ch;
ofstream fout;
fout.open(argv[2]); //otwieranie pliku do którego zawartość będzie przekopiowana
while (fin.get(ch) && !fin.eof())
{
fout << ch;
}
fin.close();
fout.close();
cerr << "Proces kopiowania przeszdl pomyslnie!\n";
}
else
{
cerr << "Za duzo argumentow do wywolania!\n";
}
return 0;
}