Sunteți pe pagina 1din 2

//Sa se transfere toti studentii din grupele ale caror numere se introduc de la

tastatura la o alta grupa.


#include <stdio.h>
#include <conio.h>
typedef struct
{
char cnp[14];
char nume[30];
unsigned char an;
unsigned int grp;
unsigned char note[20];
int is;
} StudentR;
void main()
{
FILE* f;
char numef[50];
StudentR x;
int gi, gd, ind;
printf_s("\nNume fisier: ");
gets_s(numef);
fopen_s(&f, numef, "rb+");
if (!f)
printf_s("\nNu pot deschide fisierul %s", numef);
else
{
printf_s("\nNumar grupa initial: ");
scanf_s("%d", &gi);
while (!feof(stdin))
{
printf_s("\nGrupa destinatie: "); scanf_s("%d", &gd);
fseek(f, 0, 0);
ind = 0;
fread(&x, sizeof(StudentR), 1, f);
while (!feof(f))
{
if (x.is==1)
if (x.grp == gi)
{
ind = 1;
x.grp = gd;
fseek(f, ftell(f) - sizeof(StudentR), 0)
;
fwrite(&x, sizeof(StudentR), 1, f);
}
fseek(f, 0, 1);
fread(&x, sizeof(StudentR), 1, f);
}
if (ind == 1)
printf_s("\nAm terminat de prelucrat grupa %d (a
cum %d)", gi, gd);
else
printf_s("\nNu exista niciun student in grupa %d
", gi);
printf_s("\nNumar grupa initial (sau CTRL+Z) : ");
scanf_s("%d", &gi);
}
fclose(f);

}
printf_s("\nApasa o tasta!");
_getch();
}

S-ar putea să vă placă și