Witam,
na komputerze z systemem XP x32 ten kod działał mi bez najmniejszego problemu:
#include <stdlib.h>
#include <stdio.h>
#include <conio2.h>
//-----------------------------------
//1. kolory bajery
//2. zmienic sposob wyswietlania (np po 5 uczniow
//3. dodać np. średnią (odliczyc zero) + np. wyswietlac bdb zmiast 5
struct dane
{
char nazwisko[26];
char oceny[16];
};
//enum OCENY {zwol,ndst,dop,dost,db,bdb,cel};
enum {NIE=0, LICZBOWO=0, TAK=1, SLOWNIE=1};
char *sciezka="kl1e.dat";
FILE *plik;
int n=16;
int ile;
bool sposob_pokazania=0;
struct dane osoba;
char *przedmioty[16]={"jP","jA","jN","jF","HS","WS","MT","FZ","CH","BL","GF","IF","EB","WF","WK","PP"};
char *oceny[7]={"zw","nd","dp","dt","db","bd","cl"};
int dl_pliku()
{
fseek(plik,0,2); //ustawia kursor na zerowym miejscu 2 - liczac od konca = na koncu
return ftell(plik); // okreslenie numeru polozenia glowicy
}
void kartka()
{
for(int i=0;i<n;i++)
{
gotoxy(28+i*3,3);
printf("%s",przedmioty[i]);
}
}
int il_rekordow()
{
return dl_pliku()/sizeof(osoba);
}
void piatka_uczniow(int pierwszy)
{
clrscr();
for(int j=0;j<5;j++)
{
fseek(plik, (pierwszy+j)*sizeof(osoba),0);
fread(&osoba,sizeof(osoba),1,plik);
osoba.nazwisko[25]='\0';
gotoxy(1,5+j);
printf("%s",osoba.nazwisko);
kartka();
for(int i=0;i<n;i++)
{
gotoxy(28+i*3,5+j);
if(sposob_pokazania==SLOWNIE)
printf("%s",oceny[osoba.oceny[i]]);
else
printf("%d",osoba.oceny[i]);
}
}
}
void pokaz()
{
// clrscr();
int kt=16;
char zn=0;
plik=fopen(sciezka,"rd");
ile=il_rekordow();
gotoxy(1,1);
printf("plik kl1e.dat %d b.\n",dl_pliku);
gotoxy(1,2);
printf("plik kl1e.dat %d b.",il_rekordow);
piatka_uczniow(kt);
while(zn!=27)
{
zn=getch();
switch(zn)
{
case 72: kt--; break;
case 80: kt++; break;
}
if(kt>ile-1)
kt=0;
if(kt<0) kt=ile-1;
piatka_uczniow(kt);
}
fclose(plik);
}
void zapytanie()
{
char odp;
clrscr();
printf ("Czy chcesz wyswietlic oceny slownie? (y/n)\n");
odp=getchar();
sposob_pokazania=LICZBOWO;
if(odp=='y')
sposob_pokazania=SLOWNIE;
}
int main(int argc, char *argv[])
{
zapytanie();
pokaz();
getch();
return 0;
}
tak, kod jest celowo stylizowany na C
ale po skopiowaniu tego pliku i pliku binarnego na komputer domowy Vista x64 plik kompiluje się ale we wszystkich polach wpisane jest "zw" (odpowiadające wartości 0) oraz nie wyświetlają się nazwiska
czego zapomniałem zmienić?