Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
char rasp; // raspuns la intrebare<br />
puts("Nume fisier nou:"); gets(numef);<br />
f = fopen(numef,"r"); // cauta fisier (prin deschidere in citire)<br />
if ( f ) { // daca exista fisier cu acest nume<br />
printf ("Fisierul exista deja! Se sterge ? (d/n) ");<br />
rasp= getchar(); // citeste raspuns<br />
if ( rasp =='n' || rasp =='N')<br />
return; // terminare program<br />
}<br />
f=fopen(numef,"w"); // deschide fisier ptr creare<br />
fputs (numef,f); // scrie in fisier chiar numele sau<br />
fclose(f);<br />
}<br />
Fisierele standard de intrare-iesire (tastatura si ecranul consolei) au asociate<br />
variabile de tip pointer cu nume predefinit ("stdin" si "stdout"), care pot fi folosite <strong>în</strong><br />
diferite functii, dar practic se folosesc numai in functia "fflush" care goleste zona<br />
tampon ("buffer") asociatã unui fisier.<br />
Operatiile de stergere a unui fisier existent ("remove") si de schimbare a numelui<br />
unui fisier existent ("rename") nu necesitã deschiderea fisierelor.<br />
Operatii uzuale cu fisiere text<br />
Aici este vorba de fisiere text ce contin programe sursã sau documentatii si nu de<br />
fisiere text ce contin numere <strong>în</strong> format extern. Accesul la fisiere text se poate face fie la<br />
nivel de linie, fie la nivel de caracter, dar numai secvential. Deci nu se pot citi/scrie<br />
linii sau caractere decât <strong>în</strong> ordinea memorãrii lor <strong>în</strong> fisier si nu pe sãrite (aleator). Nu<br />
se pot face modificãri <strong>în</strong>tr-un fisier text fãrã a crea un alt fisier, deoarece nu sunt de<br />
conceput deplasãri de text <strong>în</strong> fisier.<br />
Pentru citire/scriere din/<strong>în</strong> fisierele standard stdin/stdout se folosesc functii cu nume<br />
putin diferit si cu mai putine argumente, dar se pot folosi si functiile generale destinate<br />
fisierelor disc. Urmeazã câteva perechi de functii echivalente ca efect :<br />
// citire caracter<br />
int fgetc (FILE * f); // sau getc (FILE*)<br />
int getchar(); // echiv. cu fgetc(stdin)<br />
// scriere caracter<br />
int fputc (int c, FILE * f); // sau putc (int, FILE*)<br />
int putchar (int c); // echivalent cu fputc(c.stdout)<br />
// citire linie<br />
char * fgets( char * line, int max, FILE *f);<br />
char * gets (char * line);<br />
// scriere linie<br />
int fputs (char * line, FILE *f);<br />
int puts (char * line);