Vjerojatno je fseek krivo pozicioniran. Ako je već riječ o formatiranoj datoteci varijable dol i uku bi trebao učitati iz datoteke slijedom (čitati podatak po podatak pa doći i do njih) a ne direktno im pristupiti preko fseek.
Ovako?
#include <stdio.h>
int main () {
FILE *fajl;
fajl = fopen("opf.txt", "w+");
int sk, dol, uku;
float pos;
char str[100], chr;
fscanf(fajl, "%12s%d%c%d", str, &dol, &chr, &uku);
printf("nisi bio (0), bio (1)\n");
scanf("%d", &sk);
if(sk == 0)
uku++;
if(sk == 1) {
dol++;
uku++;
}
pos = ((float)dol/uku)*100;
fseek(fajl, 0, SEEK_SET);
fprintf(fajl, "Dolaznost:\n\n%d/%d -- %d%%", dol, uku, pos);
fclose(fajl);
return 0;
}
Jer i ovako izbacuje neke totalno nepovezane brojeve kao i prije.
EDIT: za bolju preglednost, ovako izgleda opf.txt:
Dolaznost:
0/0 -- 0.00%