Miért ír ki hibát a programom?
C nyelv!
Kellett egy progit írni, ami függvénnyel beolvassa a játékosok nevét és típusát egy .txt-ből.
A beolvasásnál síntax errort ír ki.
mit vétettem?
Itt a kód részlet:
typedef struct
{
char name[30];
char type[15];
}Players;
void read_file()
{
Players player;
FILE *BE;
BE = fopen("sportolok.txt", "r");
if((BE = fopen("sportolok.txt", "r")) == NULL)
{
printf("\nUnable to open file sportolok.txt");
exit(1);
};
unsigned int i;
for(i = 0; i < 10; i++)
{
fscanf(BE, "%s", Players.player[i].name);
}
fclose(BE);
}
int main()
{
read_file();
getch();
return 0;
}
Itt írja az errort:
syntax error before "Players"
fscanf(BE, "%s", Players.player[i].name); --> ezzel van a probléma. Mégis mit jelent az, hogy Players.palyer[i]?
A Players az egy típus, a player az egy Players típusú változó (!!!NEM TÖMB!!).
Bár nem fordítási hiba, de ezt is gondold át:
BE = fopen("sportolok.txt", "r");
if((BE = fopen("sportolok.txt", "r")) == NULL)
Itt először is beállítod a BE mutatót. Aztán ismét beállítod a Be mutatót. Mire jó ez?
elég lenne ennyi is:
if((BE = fopen("sportolok.txt", "r")) == NULL)
Hibák:
Milyen garancia van arra, hogy pont 10 versenyzőről van szó? Ha egy versenyzővel kevesebbet raksz be a txt-be, akkor szopás. Ha egy versenyzővel többet, akkor is.
Bár nem hiba, de:
void read_file() - miért csak egyetlen egy fájlt olvas be. Miért nincs a paraméterlistában a fájl neve? Most tételezzük fel, hogy van egy több száz fájlból álló programod. Most tételezzük fel, hogy eddig ez a program a valami.txt-ből kiolvasott adatokat dolgozott fel, de rájöttem, hogy az a fájl hibás, és mivel van egy valami2.txt fájlom, inkább azt dolgoznám fel. K@@rvára nehéz lenne kikeresni a valami.txt összes előfordulását, és kijavítani valami2.txt-re.
Nem sokkal jobban nézne ki a függvény valahogy így:
void read_file(char *fileNev) {
...
}
és a main függvény:
int main() {
char *a = "valami.txt";
read_file(a);
...
}
Értem. Tehát a ha a sportolók száma nem meghatározott akkor például jó az hogy a file végéig megyek?
Ha úgy csinálom meg a file kezelést ahogy mutattad, akkor a read_file függvényben hogy hivatkozok rá az fscanf -nél?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!