Proba 3

                Never    
C++
       
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
	char name[20];
	char surname[20];
	int year;
	int matura;
}Student;

void showbinary(FILE *inb) {
	fseek(inb, 0, SEEK_SET);
	Student x;

	while (1)
	{
		fread(&x, sizeof(Student), 1, inb);
		if (feof(inb))
		{
			break;
		}
		printf("%s	%s	%d	%d\n", x.name, x.surname, x.year, x.matura);
	}

	return;
}

void update(FILE *inb, FILE *in) {
	fseek(inb, 0, SEEK_SET);
	Student x;
	char a[15];

	while (1)
	{
		fread(&x, sizeof(Student), 1, inb);
		if (feof(inb))
		{
			break;
		}
		fscanf(in, "%s", &a);
		if (strcmp(a, "odlican") == 0 || strcmp(a, "vrlo_dobar") == 0 || strcmp(a, "dobar") == 0 || strcmp(a, "dovoljan") == 0)
		{
			if (x.year == 4)
			{
				x.matura = 1;
			}
			else
			{
				x.year += 1;
			}
		}

		fseek(inb, (-1)*(signed)sizeof(Student), SEEK_CUR);
		fwrite(&x, sizeof(Student), 1, inb);
		fseek(inb, 0, SEEK_CUR);
	}

	return;
}

int main(void) {
	FILE *in, *inb;

	in = fopen("input2.txt", "r");
	inb = fopen("ucenici.bin", "rb+");

	update(inb, in);
	showbinary(inb);

	fclose(in);
	fclose(inb);

	printf("\n");

	system("pause");

	return 0;
}

Raw Text