Polish version    English version  
  History of OI -> XIII OI 2005/2006 -> For contestants


 News
 About Olympic
 History of OI
XVII OI 2009/2010
XVI OI 2008/2009
XV OI 2007/2008
XIV OI 2006/2007
XIII OI 2005/2006
Schedule
Problems
Stage III - results
Stage II - results
Stage I - results
Stage II
Stage III
Regulations
For contestants
Helpful resources
XII OI 2004/2005
XI OI 2003/2004
X OI 2002/2003
IX OI 2001/2002
VIII OI 2000/2001
VII OI 1999/2000
VI OI 1998/1999
V OI 1997/1998
IV OI 1996/1997
III OI 1995/1996
II OI 1994/1995
I OI 1993/1994
 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 XII 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