Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- //Rezolvaþi problema 3. cu referire la o matrice de numere întregi. Observaþi specificul lucrului cu alocare staticã, respectiv dinamicã. Scrieþi variante în care sã memoraþi/sã nu memoraþi în fiºiere ºi dimensiunile matricei - numãr de linii ºi de coloane sau numãr total de elemente. Solicitaþi îndrumare din partea cadrelor didactice care coordoneazã laboratorul!.
- // matrice. alocare dinamica. numar de elemente in fisier( numar de linii, coloane in fisier) + Fisier Text si Fisier Binar
- int main()
- {
- int i,j,n,m,*v,a;
- FILE *f,*g;
- char *fn="file4a.txt",*gn="file4b.txt";
- if( (f=fopen(fn,"w"))==NULL ){
- perror(fn);
- return EXIT_FAILURE;
- }
- printf("dati numarul de linii ale matricei: ");
- scanf("%d",&n);
- fprintf(f,"%d ",n);
- printf("dati numarul de coloane ale matricei: ");
- scanf("%d",&m);
- fprintf(f,"%d\n",m);
- v=(int*)malloc(sizeof(int)*n*m);
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- printf("v[%d][%d]= ",i,j);
- scanf("%d",v+i*m+j);
- fprintf(f,"%d ",*(v+i*m+j));
- }
- fprintf(f,"\n");
- }
- fclose(f);
- if( (f=fopen(fn,"r"))==NULL ){
- perror(fn);
- return EXIT_FAILURE;
- }
- fscanf(f,"%d%d",&n,&m);
- printf("\nMatricea din fisierul text:\n");
- printf("Numarul de linii: %d\nNumarul de coloane: %d\n",n,m);
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++){
- fscanf(f,"%d",&a);
- printf("%d ",a);
- }
- printf("\n");
- }
- fclose(f);
- ///////////////////////////////////////////////
- if((g=fopen(gn,"wb"))==NULL){
- perror(gn);
- return EXIT_FAILURE;
- }
- printf("dati numarul de linii ale matricei: ");
- scanf("%d",&n);
- fwrite(&n,sizeof(int),1,g);
- printf("dati numarul de coloane ale matricei: ");
- scanf("%d",&m);
- fwrite(&m,sizeof(int),1,g);
- v=(int*)realloc(v,sizeof(int)*n*m);
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++){
- printf("v[%d][%d]= ",i,j);
- scanf("%d",v+i*m+j);
- fwrite(v+i*m+j,sizeof(int),1,g);
- }
- // fwrite(&spatiere,sizeof(char),sizeof(spatiere),g);
- }
- fclose(g);
- if((g=fopen(gn,"rb"))==NULL){
- perror(gn);
- return EXIT_FAILURE;
- }
- fread(&n,sizeof(int),1,g);
- fread(&m,sizeof(int),1,g);
- printf("\nMatricea citita din fisierul binar: \n");
- printf("nr de linii: %d\nnr de coloane: %d\n",n,m);
- for(i=0;i<n;i++)
- {for(j=0;j<m;j++){
- fread(&a,sizeof(int),1,g);
- printf("%d ",a);
- }
- printf("\n");
- }
- fclose(g);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement