Documente Academic
Documente Profesional
Documente Cultură
#include<conio.h> #include<stdio.h> #include<stdlib.h> void main(void) { clrscr(); char c; FILE *pf = fopen("pr1.txt", "r"); if(pf!=NULL) { while(!feof(pf)) { c=fgetc(pf); //scrie la dispozitivul standard de iesire fputc(c, stdout); } }else { printf("\nFisierul nu a putut fi deschis."); exit(1); } fclose(pf); getch(); }
} pf2 = fopen("fis2.txt", "r"); if(pf2 == NULL) { printf("\nEroare la deschiderea celui de-al doilea fisier"); fclose(pf1); exit(1); } pf = fopen("fis.txt", "w+"); while(fgets(sir, n, pf1) != NULL) if(fputs(sir, pf) == -1) { printf("\nEroare la scriere in fisier"); exit(1); } while(fgets(sir, n, pf2) != NULL) if(fputs(sir, pf) == -1) { printf("\nEroare la scriere in fisier"); exit(1); } //afisare continut fisier //fseek(pf, 0L, SEEK_SET) rewind(pf); while(fgets(sir, n, pf) != NULL) if(fputs(sir, stdout) == -1) { printf("\nEroare la scriere in fisier standard de iesire"); exit(1); } if(fclose(pf1) == -1) printf("\nEroare la inchidere fis1.txt"); if(fclose(pf2) == -1) printf("\nEroare la inchidere fis2.txt"); if(fclose(pf) == -1) printf("\nEroare la inchidere fis.txt"); free(sir); getch(); }
Problema 4 concatenare fisiere ale caror nume sunt date ca argumente ale liniei de comanda
#include<stdio.h> #include<conio.h> #include<stdlib.h> #define BUF 100 void afisFisier(FILE *pf); void main(int argc, char **argv) { clrscr(); FILE *pf; if(argc == 1) { //copiere intrare standard in iesire standard printf("\nIntroduceti liniile(terminare CTRL+Z)\n"); afisFisier(stdin); }else { for(int i=1; i<argc; i++) { pf = fopen(argv[i], "r"); if(pf == NULL) { printf("\nEroare la deschiderea fisierului %s", argv[i]); exit(1); } afisFisier(pf); getch();
} } getch(); }
void afisFisier(FILE *pf){ char buf[BUF]; while(fgets(buf, BUF, pf) != NULL) fputs(buf, stdout); }
} int getText(char **text, char *temp) { int nrLin = 0; puts("Introduceti liniile textului"); while(1) { gets(temp); if(strlen(temp) == 0) break; if(nrLin == 29) break; text[nrLin] = (char*)malloc(strlen(temp) + 1); strcpy(text[nrLin], temp); nrLin++; } return nrLin; } void afisText(char **text, int nrLin) { for(int i=0; i<nrLin; i++) printf("\n%s\n", text[i]); } Problema 6 fisiere binare #include<stdio.h> #include<conio.h> #include<stdlib.h> typedef struct { char den[50], um[5]; int pret, cant; }ARTICOL; union { ARTICOL art[5]; char tampon[5 * sizeof(ARTICOL)]; }tmp; void main(void) { clrscr(); FILE *pf = fopen("pr6.txt", "wb+"); if(pf == NULL) { printf("\nEroare la deschiderea fisierului"); exit(1); } ARTICOL a0 = { "Franzela Bucium", "buc", 5000, 200}; tmp.art[0] = a0; ARTICOL a1 = {"Franzela Tatarasi", "buc", 5590, 210}; tmp.art[1] = a1; ARTICOL a2 = {"Franzela", "buc", 4000, 100}; tmp.art[2] = a2; ARTICOL a3 = {"Franzela Pangran", "buc", 5000, 600}; tmp.art[3] = a3; ARTICOL a4 = {"test", "buc", 5000, 200}; tmp.art[4] = a4; //scrierea continutului zonei tampon in fisier if( fwrite(tmp.tampon, sizeof(ARTICOL), 5, pf) != 5 ) { printf("Eroare la scriere"); } rewind(pf); while(fread(tmp.tampon, sizeof(ARTICOL), 5, pf) > 0) { for(int i=0; i<5; i++) { printf("\nDenumire:%s", tmp.art[i].den);