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.

printf ( f == NULL? "Fisier negasit" : " Fisier gasit");<br />

if (f) // daca fisier existent<br />

fclose(f); // inchide fisier<br />

}<br />

Functia "fopen" are rezultat NULL (0) dacã fisierul specificat nu este gãsit dupã<br />

cãutare <strong>în</strong> directorul curent sau pe calea specificatã.<br />

Primul argument al functiei "fopen" este numele extern al fisierului scris cu<br />

respectarea conventiilor <strong>limbajul</strong>ui C: pentru separarea numelor de cataloage dintr-o<br />

cale se vor folosi douã caractere "\\", pentru a nu se considera o secventã de caractere<br />

"Escape" a <strong>limbajul</strong>ui. Exemple:<br />

char *numef = "C:\\WORK\\T.TXT"; // sau c:/work/t.txt<br />

FILE * f;<br />

if ( (f=fopen(numef,"r")) == NULL) {<br />

printf("Eroare la deschidere fisier %s \n", numef);<br />

return;<br />

}<br />

Al doilea argument al functiei "fopen" este un sir care poate contine <strong>în</strong>tre 1 si 3<br />

caractere, dintre urmãtoarele caractere posibile:<br />

"r,"w","a" = mod de folosire ("read", "write", "append")<br />

"+" dupã "r" sau "a" pentru citire si scriere din acelasi fisier<br />

"t" sau "b" = tip fisier ("text", "binary"), implicit este "t"<br />

Diferenta dintre “b” si “t” este aceea cã la citirea dintr-un fisier binar toti octetii<br />

sunt considerati ca date si sunt transferati <strong>în</strong> memorie, dar la citirea dintr-un fisier text<br />

anumiti octeti sunt interpretati ca terminator de linie (\0x0a) sau ca terminator de fisier<br />

(\0x1a). Nu este obligatoriu ca orice fisier text sã se termine cu un caracter special cu<br />

semnificatia “sfârsit de fisier” (ctrl-z , de exemplu) .<br />

Pentru fisierele text sunt folosite modurile "w" pentru crearea unui nou fisier, "r"<br />

pentru citirea dintr-un fisier si "a" pentru adãugare la sfârsitul unui fisier existent.<br />

Modul “w+” poate fi folosit pentru citire dupã creare fisier.<br />

Pentru fisierele binare se practicã actualizarea pe loc a fisierelor, fãrã inserarea de<br />

date <strong>în</strong>tre cele existente, deci modurile "r+","a+","w+". (literele 'r' si 'w' nu pot fi<br />

folosite simultan).<br />

Inchiderea unui fisier disc este absolut necesarã pentru fisierele <strong>în</strong> care s-a scris<br />

ceva, dar poate lipsi dacã s-au fãcut doar citiri din fisier.<br />

Este posibilã deschiderea repetatã pentru citire a unui fisier disc (fãrã o <strong>în</strong>chidere<br />

prealabilã), pentru repozitionare pe <strong>în</strong>ceput de fisier.<br />

Deschiderea <strong>în</strong> modul “w” sterge orice fisier existent cu acelasi nume, fãrã<br />

avertizare, dar programatorul poate verifica existenta unui fisier <strong>în</strong> acelasi director<br />

<strong>în</strong>ainte de a crea unul nou. Exemplu:<br />

int main () {<br />

FILE *f ; char numef[100]; // nume fisier

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

Saved successfully!

Ooh no, something went wrong!