Polish version    English version  
  XVIII OI 2010/2011


 Aktualności
 O olimpiadzie
 Komitety
 XVIII OI 2010/2011
Terminarz
Zadania
II Etap
Przepisy
Wyniki I etapu
Wyniki II etapu
Dla zawodników
Przydatne zasoby
 Historia OI
 Książeczki OI
 Reprezentacja
 Obozy Olimpiady
 Galeria zdjęć
 Ciekawe odsyłacze
 OIG LiveCD
 IV OIG 2009/2010
 Historia OIG
 SIO
 MAIN
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



Wersja do druku