Jeśli chcesz uruchamiać swój program w ten sposób:
c:\>nazwa_programu.exe <nazwa_pliku_z_danymi_wejsciowymi.in >nazwa_pliku_z_wynikiem.out
Operatory w < jak i > to nic innego jak operatory przekierowania standardowego wejścia oraz wyjścia. Innymi słowy twoim wejściem nie jest klawiatura lecz plik tekstowy, a wyjściem nie jest ekran lecz również plik tekstowy. Nie stosujesz tutaj żadnych sztuczek z tablicą argv. Używasz cin, cout lub printf, scanf.
Polecam sobie skompilować i uruchomić poniższy program:
#include <iostream>
using namespace std;
int main() {
string n;
while(cin>>n)
{
cout<<"----"<<n<<"-----"<<endl;
}
return 0;
}
Dla pliku wejściowego in.txt o treści
Ala ma kota kota ma Ale
Uzyskamy plik out.txt o treści
----Ala-----
----ma-----
----kota-----
----kota-----
----ma-----
----Ale-----
Dla porządku dodam że wykonałem następujące kroki, stworzyłem plik z kodem main.cpp oraz plik in.txt z danymi wejściowymi.
Następnie w konsoli skompilowałem nasz plik, użyłem polecenia:
g++ main.cpp
Polecenie to stworzyło plik wykonywalny o nazwie a.out lub a.exe dla windowsa.
Następnie w terminalu wpisałem:
a.out < in.txt > out.txt
Po wykonaniu tego polecenia został stworzony plik (o ile nie istniał) out.txt zawierający dane.
Zachęcam cię również do zapoznania się z operatorem >> czyli operatorem dopisania do pliku danych na końcu. Operator > czyści plik i zapisuje dane w czystym pliku, zaś >> dopisuje dane.