Miért nem olvassa be a fájl tartalmát?
A probléma a 2014 Okt.-i emelt érettségi programozós feladatába van. Sima C nyelven dolgozok.
A "kategoria.txt" -t próbálom beolvasni és lehetetlen. A fájl egy 15 soros és soronként van 20 számjegy. Bármelyik indexedik elemet, ha megpróbálom kiírni 0-át kapok.
A fájl-t már kipróbáltam sokféle karakterkódolással, akkor se jó.
Több mint valószínű, hogy a kóddal van valami és képtelen vagyok rájönni mi az.
#include <stdio.h>
#include <stdlib.h>
int kategoriak[15][20];
int main()
{
FILE *be;
be = fopen("kategoria.txt","r");
int i, j;
for(i=0; i<15; i++){
for(j=0; j<20; j++){
fscanf(be, "%d", &kategoriak[i][j]);
}
}
fclose(be);
return 0;
}
ilyeneket is kiír:
149383505414938350541493835054-128195523
-12819552321317470612131737061246845173
Fasza....
A CRLF egész biztosan nem okozhat problémát.
A karakterkódolás sem, mert számok vannak benne. Érettségin amúgy adnak fel programozásból ékezetes szövegeket, de számoknál fel sem merülhet.
Az egyik probléma, hogy összekevered a -ba és a -ban toldalékot, amitől szemantikai hibás mondatokat írsz. Így nem lehet programozni, ennél itt nagyobb pontosság kell. Ezt ne vedd kötekedésnek, összefügg a problémáddal.
A másik, hogy helytelenül értelmezted a feladatot. Az egyes sorokban egyjegyű számok vannak egymás mellett, jó sokan. Ezt ugye nyilvánvalóan nem lehet a %d formázóval számként beolvasni, mert a gépnek fogalma sincs, meddig ér az a szám, amire te kíváncsi vagy, tehát olvas a sor végéig, és így összesen 20-szor annyi számot olvasol be, mint amennyi van, innentől kezdve pedig egy C programtól szinte bármi kitelik. Az azért furcsa, hogy bármit is kiírt, mert nincs benne print.
Talán a legegyszerűbb lenne karakterenként beolvasni az állományt, mert akkor biztosan egyjegyűek lesznek, és azt átalakítani számokká.
Köszönöm! Azért ez elég érdekes, hogy egy számként kellene beolvasnom a sorokat, mivel a számokkal egyenként tehát egyjegyű számokkal kell dolgoznom.
De azért nem is gondoltam volna, hogy rossz az elképzelésem mivel van egy ugyan ilyen fájl csak abba karakterek vannak és ugyan ezzel a megoldással sikerült azt beolvasni.
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!