Kezdőoldal » Számítástechnika » Programozás » Fájlból hogy tudnám beolvasni...

Sonor123 kérdése:

Fájlból hogy tudnám beolvasni soronként az adatokat c nyelvben (részletek lent)?

Figyelt kérdés
Van egy txt fájl, minden sorban egész szám adatok (6db) (ugyanannyi minden sorban), majd egy szöveg (ez már soronként változik szószám és karakterhossz tekintetében is, sztringként kezelve 48 a legnagyobb sztringméret, ami a tárolásukhoz kéne). Próbáltam utánaolvasni, addig eljutottam, hogy fgets-et majd sscanf-et kéne használni, de az általam talált példákban sehol sem volt egyszerre szám és több szóból álló szöveg a fájl egy sorában. Valaki tudna segíteni?

2015. nov. 21. 18:38
1 2
 1/17 anonim ***** válasza:

Az sscanf-et lehet parameterezni, hogy tobb szamot is ki tudjon olvasni.


Ez: "%d %d : %d" peldaul a kovetkezot dolgozza fel helyesen: "1 123 : 65"


Vagy a teljes sor stringben tarolasa helyett hasznalhatod az fscanf fuggvenyt is.

2015. nov. 21. 18:44
Hasznos számodra ez a válasz?
 2/17 A kérdező kommentje:
fscanf-et próbáltam először, de a szöveges részt nem tudta kezelni. Nekem arra lenne szükségem, hogy beolvassam az egész sort, majd az adatokat listaelemekben tároljam. A listaelemek struktúrák, egy sztringet is magukban foglalnak.
2015. nov. 21. 18:51
 3/17 anonim ***** válasza:

Stringet %d helyett %s-ssel lehet beolvasni. Ez space-ig olvas, tehat ha egy darabban vannak a szovegek, akkor nem kell fgets.


De amugy mi nem ertheto pontosan a dokumentaciobol?

2015. nov. 21. 20:13
Hasznos számodra ez a válasz?
 4/17 anonim ***** válasza:

Asszem ertem a problemat, ezt (es a felpontotzott valaszt) nezd meg:

[link]

2015. nov. 21. 20:18
Hasznos számodra ez a válasz?
 5/17 A kérdező kommentje:
Tudom, hogy hogyan kell sztringet beolvasni, de ahogy fent is írtam, van minden szövegrészben space:"változik szószám" sehol sem 1 szó van csak, akár 10 szó is lehet egy sorban (egymás után, csak space-el elválasztva, és az kéne, hogy a beolvasás után egy sorból az összes szót egy karaktertömbbe másoljak.
2015. nov. 21. 20:18
 6/17 A kérdező kommentje:
Láttam már ezt a választ, nem segített. A probléma ugyan az. Nagyon szépen beolvassa a 6db int típusú adatot a sor elejéről, de a szöveggel semmit nem kezd (egy teljesen random karaktert berak mutatva, hogy látta, hogy nem ért véget a sor, de ennyi). A kérdésem továbbra is ez:soronként 6 int típus bescannelése és az adatok megadott változók értékeként beírása (scanf("%d%d%d", &a, &b,&c)-re gondolok), és ugyan ezen sor szöveges részének beírása egy megadott karaktertömbbe. Légyszíves ne olyan példákat írj, amiben csak az egyikkel vagy csak a másikkal foglalkoznak, olyanból több tucatot olvastam az elmúlt 1 órában is.
2015. nov. 21. 20:32
 7/17 anonim ***** válasza:
Akkor masold be, hogyan hasznaltad fel ezt a programodban: "%[^\n]s"
2015. nov. 21. 20:35
Hasznos számodra ez a válasz?
 8/17 A kérdező kommentje:

char buff[100];

fgets(buff, 100, fp);

sscanf(buff, "%d%d%d%d%d%d%[^\n]c", &xseason, &xsee, &xses, &xev, &xhonap, &xnap, &xcim);

2015. nov. 21. 20:39
 9/17 anonim ***** válasza:
A %c ugye egy karaktert olvas be. Stringet %s-sel, vagy %*c-vel tudsz beolvasni.
2015. nov. 21. 20:41
Hasznos számodra ez a válasz?
 10/17 A kérdező kommentje:

Ok, csak az kellett, hogy ide másoljam...

c-t írtam s helyet..... hát én kész vagyok...

Bocsi és köszi a segítséget

2015. nov. 21. 20:42
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!