Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Intrari si iesiri standard-getchar si putchar

c



+ Font mai mare | - Font mai mic



Intrari si iesiri standard-getchar si putchar

Mecanismul cel mai simplu de intrare este de a citi un caracter



la un moment dat de la 'standard input', care in general este

terminalul utilizatorului, cu getchar. getchar() returneaza

urmatorul caracter de intrare de cite ori este apelat. In cele

mai multe medii care suporta C, un fisier poate fi substituit

terminalului utilizind conventia <; daca un program 'prog'

foloseste getchar, atunci linia de comanda:

prog<infile

determina 'prog' sa citeasca 'infile' in loc de terminal.

Comutarea intrarii este facuta de o astfel de maniera incit

'prog' insusi nu simte aceasta; in particular, sirul '<infile>' nu

este inclus in argumentele 'argv' ale liniei de comanda.

Comutarea intrarii este asadar invizibila daca intrarea vine de la

un alt program via un 'pipe mecanisme', linia de comanda

otherprogr|prog

executa ambele programe 'otherprogr' si 'progr' si aranjeaza

astfel ca intrarea standard pentru 'progr' vine de la iesirea

standard a lui 'otherprogr'.

'getchar' returneza valoarea EOF cind intilneste

sfirsitul fisierului indiferent de ce este citit la intrare.

Biblioteca standard defineste constanta simbolica EOF ca fiind -

1 ( cu un #define in fisierul stdio.h) dar testele se fac cu EOF

nu cu -1, astfel ca sa fie independent de valoarea specifica.

Pentru iesire, putchar(c) pune caracterul c la iesirea

standard care este terminalul. Iesirea poate fi directata spre un

fisier folosind '>' daca 'progr' utilizeaza putchar,

prog>aufile

iesirea standard va fi 'outfile' in loc de terminal. In sistemul

UNIX se poate utiliza o comunicatie (pipe) spre alt program:



progr|anotherprogr

comuta iesirea standard a programului 'progr' ca intrare standard

a programului 'anotherprogr'. Si in aceste cazuri 'progr' nu are

cunostiinta de redirectare.

Un numar destul de mare de programe au un singur sir de date ca

intrare si un singur sir ca iesire; pentru astfel de

programe I/O cu getchar putchar si printf pot fi in intregime

adecvate, mai ales daca folosim facilitatile de redirectare si

pipe pentru conectarea iesirii unui program cu intrarea altuia. De

exemplu sa consideram programul 'lower':

#include <stdio.h>

main() /* convert input to lower case */

Functiile 'isupper' si 'tolower' sint de fapt macrouri

definite in stdio.h. Macrourile 'isupper' testeaza care din

argumentele sale este o litera mare, returnind in acest caz o

valoare non-zero, sau o litera mica returnind in acest caz zero.

Macroul tolower converteste o litera mare in una mica. Indiferent

de cum aceste functii sint implementate pe diferite masini, mediul

lor extern este acelasi, astfel ca prgramele sint scutite de

cunoasterea setului de caractere.

Pentru convertirea unor fisiere multiple se poate folosi un

program la fel ca utilitarul 'cat' din UNIX pentru colectarea

fisierelor:

cat file1file2|lower>output

si aceasta ne permite sa invatam cum se acceseaza fisierele

dintr-un program. ('cat' este prezentat mai tirziu in acest

capitol).

In biblioteca standard I/O functiile getchar si putchar pot

de fapt sa fie macrouri, si aceasta permite ca sa nu fie

apelata o functie pentru fiecare caracter(overhead). Vom arata

aceasta in capitolul 8.




Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1083
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved