unnn

model 1

Apr 17th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.93 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4.  
  5.  
  6. void verif(FILE *f, char *nume) {
  7.     if (!f) {
  8.         printf("Fisierul %s nu s-a deschis!", nume);
  9.     }
  10. }
  11.  
  12. typedef struct {
  13.     int nr;
  14.     char nume[30];
  15.     int grupa;
  16.     char pp[3];
  17.     int pt[20];
  18.     char pe[3];
  19. }Student;
  20. //"%3d %-30s %18d %10s %10s %9s"
  21.  
  22. void BinInText(char *numeBin, char *numeTxt, Student s) {
  23.     FILE *f, *g;
  24.     int i;
  25.  
  26.     f = fopen(numeBin, "rb"); verif(f, numeBin);
  27.     g = fopen(numeTxt, "w"); verif(g, numeTxt);
  28.  
  29.     fprintf(g, "Nr. Nume %30s Grupa Pct proba Pct teme %10s Pct examen\n", " ", " ");
  30.     fread(&s, sizeof(Student), 1, f);
  31.     while(!feof(f)) {
  32.         fprintf(g, "%3d %6s %30d %10s", s.nr, s.nume, s.grupa, s.pp);
  33.         for(i = 0; i < 10; i++)
  34.             fprintf(g, " %d ", s.pt[i]);
  35.         fprintf(g, "%s\n", s.pe);
  36.         fread(&s, sizeof(Student), 1, f);
  37.     }
  38.     fclose(g);
  39.     fclose(f);
  40. }
  41.  
  42. void main() {
  43.     FILE *f;
  44.     Student s;
  45.     char s1[20], s2[20];
  46.     int i;
  47.  
  48.     printf("Fisier: "); gets(s1);
  49.     f = fopen(s1, "wb"); verif(f, s1);
  50.     printf("Fisier text: "); gets(s2);
  51.  
  52.     printf("Nr. mat: "); scanf("%d", &s.nr);
  53.  
  54.     while (!feof(stdin)) {
  55.         fflush(stdin);
  56.         printf("Nume: "); fgets(s.nume, sizeof(s.nume), stdin);
  57.         size_t length = strlen(s.nume);
  58.         if(s.nume[length-1] == '\n') s.nume[length-1] = '\0';
  59.         fflush(stdin);
  60.         printf("Grupa: "); scanf("%d", &s.grupa);
  61.         fflush(stdin);
  62.         printf("Pct proba: "); fgets(s.pp, sizeof(s.pp), stdin);
  63.         length = strlen(s.pp);
  64.         if(s.pp[length-1] == '\n') s.pp[length-1] = '\0';
  65.         fflush(stdin);
  66.         printf("Pct teme\n");
  67.         for(i = 0; i < 10; i++) {
  68.             printf("Tema %d: ", i+1);
  69.             scanf("%d", &s.pt[i]);
  70.         }
  71.         fflush(stdin);
  72.         printf("Pct examen: "); fgets(s.pe, sizeof(s.pe), stdin);
  73.         fwrite(&s, sizeof(Student), 1, f);
  74.         fflush(stdin);
  75.         printf("Nr. mat: "); scanf("%d", &s.nr);
  76.     }
  77.     fclose(f);
  78.  
  79.     BinInText(s1, s2, s);
  80.  
  81. }
Add Comment
Please, Sign In to add comment