Kezdőoldal » Számítástechnika » Programozás » Miért ír ki hibát a programom?

Miért ír ki hibát a programom?

Figyelt kérdés

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?



2015. ápr. 25. 16:00
1 2
 1/13 anonim ***** válasza:
100%
Valószínűleg szinaktikai hibát vétettél, ahogy a hibaüzenet is mondja. A hibaüzenet azt is kiírja, melyik sorban van gond, ilyenkor azt a sort és az előtte levőeket érdemes figyelmesen megnézni.
2015. ápr. 25. 16:01
Hasznos számodra ez a válasz?
 2/13 A kérdező kommentje:

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"

2015. ápr. 25. 16:04
 3/13 anonim ***** válasza:

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!!).

2015. ápr. 25. 16:17
Hasznos számodra ez a válasz?
 4/13 anonim ***** válasza:

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)

2015. ápr. 25. 16:19
Hasznos számodra ez a válasz?
 5/13 anonim ***** válasza:
Tragédia.
2015. ápr. 25. 16:21
Hasznos számodra ez a válasz?
 6/13 anonim ***** válasza:
És ez csak kettő a temérdek hiba közül. :((
2015. ápr. 25. 16:23
Hasznos számodra ez a válasz?
 7/13 A kérdező kommentje:
Javítottam és most lefut. Milyen hiba van még szerintetek?
2015. ápr. 25. 16:32
 8/13 anonim ***** válasza:

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.

2015. ápr. 25. 16:53
Hasznos számodra ez a válasz?
 9/13 anonim ***** válasza:

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);

...

}

2015. ápr. 25. 17:09
Hasznos számodra ez a válasz?
 10/13 A kérdező kommentje:

É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?

2015. ápr. 25. 17:58
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!