Jump to content
hitme

Problema C_Fisiere

Recommended Posts

aveti idee de ce nu functioneaza corect? citesc in fisier, si vreau sa afisez (intai) doar ca nu merge si nu inteleg de ce..

am lasat in comentarii programul pentru citire.


/*
Se considerã un fiºier ce conþine urmãtoarele informaþii referitoare la produsele prezentate în cadrul unui catalog: codul firmei, codul produsului, denumirea produsului ºi cantitatea produsã. Se cere:
- sã se ordoneze fiºierul crescãtor dupã codul firmei, stabilindu-se apoi numãrul de produse realizate de cãtre fiecare firmã;
- sã se ordoneze fiºierul crescãtor dupã codul produsului, stabilindu-se pentru fiecare produs numãrul de firme care îl realizeazã.
*/

//Citire in fis:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
int cod_f;
int cod_p;
char nume[30];
int cantitate;
} FIRMA;

/*

int main()
{
FILE *g=fopen("inf.dat","wb");
if(g == NULL)
{
printf("Eroare deschidere fisier");
exit(EXIT_FAILURE);
}
int i,n;
FIRMA x;
printf("Cate structuri? ");
scanf("%d",&n);
fflush(stdin);

for(i=1;i<=n;i++)
{
printf("Cod firma [%d] : ",i);
scanf("%d",&x.cod_f);
printf("Cod produs [%d] : ",i);
scanf("%d",&x.cod_p);
fflush(stdin);
printf("Cantitate [%d] : ",i);
scanf("%d",&x.cantitate);
printf("Nume [%d] : ",i);
scanf("%s",x.nume);
fflush(stdin);

fwrite(&x,sizeof(FIRMA),1,g);
}
fclose(g);
return 0;
}


*/



int main()
{
FILE *f=fopen("inf.dat","rt");
if(f==NULL)
{
printf("Eroare fis");
exit(1);
}
FIRMA x;
int i,n;
fseek(f,0L,2);
n=ftell(f)/sizeof(FIRMA);
fseek(f,0L,0);
printf("Cod firma | Cod produs | Denumire produs | Canitate produs \n");
for(i=1;i<=n;i++)
{
fread(&x,sizeof(FIRMA),1,f);
printf("%d %d %d %s \n",x.cod_f,x.cod_p,x.cantitate,x.nume);
}
fclose(f);
return 0;
}





Link to comment
Share on other sites

  • Active Members

Deci tu vrei mai intai sa scrii in fisierul ala datele de acolo ? ( cod firma, cod produs, bla bla ).

Uite aici o idee:


FILE *f = fopen("file.txt", "w");
if (f == NULL)
{
printf("Eroare !\n");
exit(1);
}

/* printam ceva text */
const char *text = "Scriem asta in txt";
fprintf(f, "Text: %s\n", text);

/* Integer si floats */
int i = 1;
float py = 3.1415927;
fprintf(f, "Integer: %d, float: %f\n", i, py);

/* print caractere simple */
char c = 'A';
fprintf(f, "A character: %c\n", c);

fclose(f);

Cum citesti din fisier ? Am gasit o problema p-aici. Nu am timp sa iti scriu.

11) Se presupune un fi?ier text ("vocale.txt") ce con?ine o in?iruire de caractere. S? se contorizeze apari?ia fiec?rei vocale în fi?ier.


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<limits.h>
void main()
{
char c;
int a=0,e=0,i=0,o=0,u=0; //a=nr. de aparitii a vocalei "a", s.a.m.d.

FILE *stream; /*declarare stream (flux de date)*/
stream = fopen("D:\\vocale.txt ", "r"); /*deschidere fisier*/
if(stream == NULL)
{
printf ("Eroare");
getch();
exit(1);
}
while(!feof(stream)) //atata timp cat nu e sf de fisier
{
fscanf(stream,"%c",&c); //sau c=getc(f); sau c=fgetc(f);
switch(c)
{
case 'a': a++; break;
case 'e': e++; break;
case 'i': i++; break;
case 'o': o++; break;
case 'u': u++;
};
}
fclose(stream);
printf("Vocala \"a\" aparare de %d ori.\n",a);
printf("Vocala \"e\" aparare de %d ori.\n",e);
printf("Vocala \"i\" aparare de %d ori.\n",i);
printf("Vocala \"o\" aparare de %d ori.\n",o);
printf("Vocala \"u\" aparare de %d ori.\n",u);
getchar();
}

Mai citeste despre fisiere.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...