Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
ROZDZIAŁ1.KONSOLAIINTERPRETERPOLECEŃ
1.7.Konsolaokiemprogramisty
Zpunktuwidzeniaprogramowanianajbardziejpodstawowąoperacją,którąpowinien
znaćkażdyprogramista,jestinterakcjazestandardowymwyjściemorazwejściem.Dla
przypomnieniatabela3zawieraprzykładyoperacjinastandardowymwyjściuiwejściu
wkilkujęzykach.
Tabela3.Wypisaniewiadomościnastdoutistderrorazpobranieliniitekstuzstdin
Język
Interakcjaz
Przykładowyfragmentkodu
Python
stdout
print"Exampletext"
lub
sys.stdout.write("Exampletext\n")
stderr
sys.stderr.write("Exampletext\n")
lub
print>>sys.stderr,"Exampletext"
#2.7
lub
print("Exampletext",file=sys.stderr)
#3
stdin
line=raw-input()
lub
line=sys.stdin.readline()
#2.7
C/C++
stdout
puts("Exampletext")
lub
fputs("Exampletext",stdout);
stderr
fputs("Exampletext",stderr);
lub
fwrite("Exampletext",1,12,stderr);
stdin
fgets(buffer,buffer-size,stdin);
lub
gets-s(buffer,buffer-size);11
lub
scanf("%15[^\n]",buffer);//dlacharbuffer[16]
C++
stdout
std::cout<<"Exampletext\n";
stderr
std::cerr<<"Exampletext\n";
stdin
std::getline(std::cin,string-object);
lub
std::cin.getline(buffer,buffer-size);
Java
stdout
System.out.println("Exampletext\n");
stderr
System.err.println("Exampletext\n");
stdin
BufferedReaderin=newBufferedReader(
newInputStreamReader(System.in));
line=in.readLine();
11
11Wprzeszłościistniałajeszczefunkcjagets,któranaszczęściezostałausuniętawnowychstandardach
językaC.Funkcjataprzyjmowałajedynieadresbufora(alejużniejegowielkość)iwprzypadkuzbytdużejilości
danychwejściowychpamięćznajdującasiębezpośredniozabuforembyłanadpisywana,coczęstoprowadziłodo
błędówzwiązanychzbezpieczeństwem(chodziotzw.bufferoverflow).Dokładnietensamproblemmożewystąpić
wzwiązkuzoperatorem>>(char*)wprzypadkuobiektustd::cinwC++.
40