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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Un fisier text pe disc contine numai caractere ASCII, grupate <strong>în</strong> linii de lungimi<br />

diferite, fiecare linie terminatã cu unul sau douã caractere terminator de linie (fisierele<br />

Unix/Linux folosesc un singur caracter terminator de linie ‘\n’ , iar fisierele Windows<br />

si MS-DOS folosesc caracterele ‘\r’ si ’\n’ (CR,LF) ca terminator de linie.<br />

Un fisier text poate fi terminat printr-un caracter terminator de fisier (Ctrl-Z=<br />

\0x1A), dar nu este obligatoriu acest terminator. Sfârsitul unui fisier disc poate fi<br />

detectat si pe baza lungimii fisierului (numãr de octeti), memoratã pe disc.<br />

Functiile de citire sau de scriere cu format din/<strong>în</strong> fisiere text realizeazã conversia<br />

automatã din format extern (sir de caractere) <strong>în</strong> format intern (binar virgulã fixã sau<br />

virgulã mobilã) la citire si conversia din format intern <strong>în</strong> format extern, la scriere<br />

pentru numere <strong>în</strong>tregi sau reale.<br />

Fisierele disc pot contine si numere <strong>în</strong> reprezentare internã (binarã) sau alte date ce<br />

nu reprezintã numere (de exemplu, fisiere cu imagini grafice, <strong>în</strong> diverse formate).<br />

Aceste fisiere se numesc fisiere binare, iar citirea si scrierea se fac fãrã conversie de<br />

format. Pentru fiecare tip de fisier binar este necesar un program care sã cunoascã si<br />

sã interpreteze corect datele din fisier (structura articolelor).<br />

Este posibil ca un fisier binar sã continã numai caractere, dar functiile de citire si<br />

de scriere pentru aceste fisiere nu cunosc notiunea de linie; ele specificã un numãr de<br />

octeti care se citesc sau se scriu la un apel al functiei “fread” sau “fwrite”.<br />

Fisierele disc trebuie deschise si <strong>în</strong>chise, dar fisierele consolã si imprimanta nu<br />

trebuie deschise si <strong>în</strong>chise.<br />

Functii pentru deschidere si <strong>în</strong>chidere fisiere<br />

In C sunt disponibile douã categorii de functii pentru acces la fisiere:<br />

- Functii stil Unix, declarate <strong>în</strong> fisierul “io.h” si care se referã la fisiere prin numere<br />

<strong>în</strong>tregi.<br />

- Functii standard, declarate <strong>în</strong> fisierul “stdio.h” si care se referã la fisiere prin<br />

pointeri la o structurã predefinitã ("FILE").<br />

In continuare vor fi prezentate numai functiile standard, din .<br />

Pentru a citi sau scrie dintr-un /<strong>în</strong>tr-un fisier disc, acesta trebuie mai <strong>în</strong>tâi deschis<br />

folosind functia "fopen". La deschidere se precizeazã numele fisierului, tipul de fisier<br />

(text/binar) si modul de exploatare: numai citire, numai scriere (creare) sau citire si<br />

scriere (modificare).<br />

La deschiderea unui fisier se initializeazã variabila pointer asociatã, iar celelalte<br />

functii (de acces si de <strong>în</strong>chidere) se referã la fisier numai prin intermediul variabilei<br />

pointer. Exemplu:<br />

#include <br />

void main ( ) {<br />

FILE * f; // pentru referire la fisier<br />

// deschide un fisier text ptr citire<br />

f = fopen ("t.txt","rt");

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

Saved successfully!

Ooh no, something went wrong!