Sunteți pe pagina 1din 8

?? ?

Fiiere text ca surse de date

Fiiere text ca surse de date

Fiier text:
CR/LF CR/LF CR/LF
... ...

CR/LF

EOF

stdin i stdout snt fiiere text => Citirea din fiiere text citirea de la tastatur (stdin)

fscanf( stdin, %d, &x ); scanf(%d, &x );

Scrierea n fiiere text

scrierea pe ecran (stdout)

fprintf( stdout, %d, x); printf( stdout, %d, x);

Fiiere text ca surse de date

Fiierele text snt utilizate n aplicaii ca:


surs de date iniiale
trebuie preluate n aplicaie nainte de a ncepe calculele

raport final
destinat utilizatorului rezultatele calculelor snt pregtite pentru vizualizare (pe ecran / imprimant)

Fiiere text ca surse de date

//I: fisier, vector Fienumar un vector memorat ntr-un fiier text //E: elemente un element pe fiecare linie sau void preluare_vector_1(char * nume, float v[], int* n) toate elementele pe o linie, separate prin spaii { float x; FILE* f;

S se scrie un subprogram pentru preluarea vectorului n fopen_s(&f,nume,"r+"); memorie


if(f) { *n=0; fscanf_s(f,"%f",&x); while(!feof(f)) { v[(*n)++]=x; fscanf_s(f,"%f",&x); } } fclose(f);

Fiiere text ca surse de date

float a[100]; int i,l; preluare_vector_1("test.txt",a,&l); if(!l) printf("\n\nNu s-a putut deschide fisierul sau nu sint elemente"); Vectorul preluat are 5 elemente: else 1.11 preluat 2.22 3.33 4.44 5.55 { printf("\n\nVectorul are %d elemente: \n",l); for(i=0;i<l;i++) Vectorul preluat are 6 elemente: printf("%5.2f ",a[i]); 1.11 2.22 3.33 4.44 5.55 23.12 }

Fiiere text ca surse de date

void preluare_vector_1(char *nume, float v[], int* n) { float x; FILE* f;

void preluare_vector_2(char *nume, float v[], int* n) { float x; int vb; FILE* f; fopen_s(&f,nume,"r+"); if(f) { *n=0; do { vb=fscanf_s(f,"%f",&x); if(vb==1) v[(*n)++] = x; } while(vb==1); } fclose(f);

fopen_s(&f,nume,"r+"); if(f) { *n=0; fscanf_s(f,"%f",&x); while(!feof(f)) { v[(*n)++]=x; fscanf_s(f,"%f",&x); } } fclose(f);

void preluare_vector_3(char* nume, float v[], int* n) { FILE* f; int i; fopen_s(&f,nume,"r+"); fscanf_s(f,"%d",n); for(i=0;i<*n;i++) fscanf(f,"&f",&v[i]); fclose(f); }