Sunteți pe pagina 1din 18

RUTINE STANDARD

INTRĂRI ȘI IEŞIRI
INTRODUCERE

• În limbajul C, nu există instrucţiuni de intrare/ieşire (citire/scriere) cu scopul


de a mări portabilitatea limbajului.
• Pentru a realiza citiri şi scrieri se apelează la funcţii de intrare/ieşire din
bibliotecile mediului de programare(stdio.h și conio.h)
INTRĂRI IEȘIRI
Printf Scanf
Puts Gets
Putchar Getchar
Putch Getch
FUNCŢIILE INPUT/OUTPUT (INTRARE/IEŞIRE )

Aceste funcții din limbajul C pot fi grupate în câteva familii:

• Funcţii de citire/scriere caractere individuale: getchar, putchar, getch, putch;


• Funcţii de citire/scriere linii de text: gets, puts;
• Funcţii de citire/scriere cu format (cu conversie): scanf, printf.
FUNCȚIA PRINTF
Se apeleaza astfel:
printf(format, arg1, arg2, …);
• “format” reprezintă un şir de caractere care conţine textul
de afişat şi specificatori de format;
• “arg, arg2,…” sunt expresiile, valorile care se scriu
conform specificatorilor de format prezenți în parametrul
de control;
• aparține bibliotecii stdio.h;
FUNCȚIA PRINTF

• afişează pe ecran valorile expresiilor din lista argumentelor, conform formatului


specificat;
• argumentele pot fi constante, variabile, expresii;
• dacă nu apare nici un argument, pe ecran se tipăresc doar caracterele din şirul format.
FUNCȚIA SCANF

Se apelează:
scanf(char *format, adr1, adr2,...);
• citește caractere de la tastatură, conform formatului, și înscrie valorile citite la adresele
specificate.
• returneaza numarul de câmpuri citite cu succes sau valoarea EOF la întâlnirea sfârsitului
fisierului de intrare.
Șirul format poate conține:
• caractere blank sau tab care sunt ignorate;
• caractere ordinare care trebuie să fie citite corespunzător de la intrare;
• specificatori de conversie, la fel ca la printf.
FUNCȚIA SCANF

• Specificatorii de conversie determină modul de conversie a câmpurilor de


intrare.
• aparține bibliotecii stdio.h;
FUNCȚIA PUTS

Se apelează astfel:
puts(char *s);
• Tipărește pe ecran șirul s urmat de caracterul newline.
• aparține bibliotecii stdio.h;
FUNCȚIA PUTCHAR

Se apelează asfel:
putchar(int char) ;
• Afişează pe ecran caracterul transmis ca parametru;
• aparține bibliotecii stdio.h;
FUNCȚIA GETS
Se apelează:
gets(char * s);
• Citeşte caractere până la întâlnirea lui Enter, fără să se adauge la şirul s;
• Plasează /0(terminator de șir) la sfârşitul lui s;
• aparține bibliotecii stdio.h;

*Observație: codul lui Enter e scos din buffer-ul de intrare.


FUNCȚIA GETS

Deoarece este imposibil de prevăzut câte caractere vor fi citite de la tastatura


într-o operatie de introducere de șiruri, și deoarece gets nu verifica lungimea alocată
șirului destinație, folosirea acestei funcții în programele importante poate duce la
efecte "neplăcute" (prin scrierea datelor citite peste zone de memorie alocate altor
variabile). Acest "bug" a dus la "spargerea" multor sisteme vechi care foloseau gets
pentru citirea parolei.
FUNCȚIA GETCHAR
Se apelează astfel:
getchar(void);
• Returnează codul unui caracter citit de la tastatura sau valoarea EOF (End Of
File - constantă simbolică definită în stdio.h, având valoarea -1);
• aparține bibliotecii stdio.h;
FUNCȚIILE GETCH ȘI GETCHE

Se apelează în felul următor:


getch(void); getche(void);
• aparțin bibliotecii conio.h;
• Diferența dintre GETCH, GETCHE si GETCHAR este aceea că prima funcție
menționată citește un caracter de la tastatură fără sa-l afișeze pe ecran, ci
doar returnând caracterul citit, iar GETCHAR va aștepta intotdeauna
apăsarea tastei ENTER.
OPERAREA CU FIȘIERE
Pentru operarea cu un fişier (text sau binar) se defineşte o variabilă de tip
FILE * pentru accesarea fişierului:
FILE * - tip structură
Exemplu: FILE *fopen (const char *numefisier, const char *mod);
Conţine informaţii referitoare la fişier şi la tamponul(buffer) de transfer de date între
memoria centrală şi fişier:
• adresa
• lungimea tamponului
• modul de utilizare a fişierului
• indicator de sfârşit de fişier
• indicator de poziţie în fişier
FUNCȚIILE ȘI MODUL DE ACCESARE A FIȘIERELOR
Valoarea lui *mod Tipul fișierului Modul de accesare
Rt Text doar citire; dacă fişierul nu
Exemplu: FILE *fisier=fopen(const char *numefisier, const char există se semnalează eroare
*mod); Rb Binar doar citire; dacă fişierul nu
există se semnalează eroare
Wt Text doar scriere; dacă fişierul nu
Nume funcție Descriere funcție
există, va fi creat, iar dacă
există, va fi suprascris
fopen(const char *numefisier, const Deschide un fisier
char *mod) Wb Binar doar scriere; dacă fişierul nu
există, va fi creat, iar dacă
Fclose(FILE *fp) Închide un fișier există, va fi suprascris

Fputch(int c, FILE * f) Scrie un caracter în fișier At Text doar scriere; dacă fişierul nu
există va fi creat, iar dacă
există se va adauga la
Fgetch(FILE * f) Citeste un caracter din fișier
sfârşitul lui
Ab Binar doar scriere; dacă fişierul nu
Fseek(FILE *fp, long int offset, int Cauta un anumit octet din fișier există va fi creat, iar dacă
există se va adauga la
poziţie) (modificarea pozitiei de citire sau sfârşitul lu
scriere in interiorul unui fisier. )
R+t Text Citire si scriere;dacă nu exista
Fprintf(FILE * f, char * format, ...) Echivalentul lui printf() va fi semnalată o eroare

Fscanf(FILE * f, char * fmt, ..) Echivalentul lui scanf() R+b Binar Citire si scriere;dacă nu exista
va fi semnalată o eroare
Feorror((FILE *f) Returneazza o valoare diferita de
0 daca apare o eroare
W+t Text Citire si scriere; fișierul va fi
suprascris in caz de existență

Ftell((FILE *f) Returneaza pozitia cursorului într-un W+t Binar Citire si scriere; fișierul va fi
fișier suprascris in caz de existență
//setează indicatorul de poziţie al fluxului referit de fp la începutul fişierului
HAI CĂ AM TERMINAT!

S-ar putea să vă placă și