17.04.2013 Views

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

SHOW MORE
SHOW LESS

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);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!