Polish version    English version  
  About Olympic


 News
 About Olympic
Schedule
Problems
Stage II
Regulations
Stage I - results
Stage II - results
For contestants
Helpful resources
 History of OI
 OI books
 National team
 Olympic camps
 Photo gallery
 Links
 SIO
 MAIN
This document is not available in English version.

Jak przekierować standardowe wejście i wyjście?


Obecnie (podczas XVII Olimpiady Informatycznej) programy, będące rozwiązaniami zadań, mają wczytywać dane wejściowe ze standardowego wejścia i zapisywać dane wyjściowe na standardowe wyjście. Jeśli uruchomimy program w najprostszy możliwy sposób, np. po to, żeby go przetestować, to wczytuje on dane z klawiatury, a wynik zapisuje na ekranie. Często chcielibyśmy jednak, żeby program pobrał dane z pliku i/lub do pliku zapisał. Można to zrobić przekierowując standardowe wejście i wyjście. Poniżej na przykładach pokazujemy, jak to zrobić w linii poleceń w systemach opracyjnych DOS, Windows i Linux.

DOS i Windows

Załóżmy, że mamy plik wykonywalny abc.exe w bieżącym katalogu. Aby wczytywał on dane z pliku abc.in piszemy następujące polecenie:

     abc.exe < abc.in 

Natomiast jeśli chcemy, aby zapisywał dane wyjściowe do pliku abc.out, to piszemy:

     abc.exe > abc.out 

ale musimy uważać, jeśli plik abc.out już istniał, bo utracimy jego dotychczasową zawartość. Oczywiście możemy zarówo z pliku wczytywać, jak i do pliku pisać, wykonując jedno z poniższych poleceń:

     abc.exe < abc.in > abc.out 
     abc.exe > abc.out < abc.in

Linux

Załóżmy, że mamy plik wykonywalny abc w bieżącym katalogu. Aby wczytywał on dane z pliku abc.in piszemy następujące polecenie:

     ./abc < abc.in 

Natomiast jeśli chcemy, aby zapisywał dane wyjściowe do pliku abc.out, to piszemy:

     ./abc > abc.out 

ale musimy uważać, jeśli plik abc.out już istniał, bo utracimy jego dotychczasową zawartość. Oczywiście możemy zarówo z pliku wczytywać, jak i do pliku pisać, wykonując jedno z poniższych poleceń:

     ./abc < abc.in > abc.out 
     ./abc > abc.out < abc.in



Print friendly version