Kezdőoldal » Számítástechnika » Programozás » C string kiíratása printf ()...

C string kiíratása printf () -fel?

Figyelt kérdés

Nem vagyok teljesen kezdő programozó, de C-ben most programozok először.

printf()-fel szeretnék kiíratni stringeket.

Ez egy szótár, a stringek egy struct-ban vannak, két karakter tömb:


struct Dictionary

{

char entry[20];

char definition[80];

};


A beolvasás alacsonyszintű read()-del történik, de ezt a részt vagy 100szor ellenőriztem ez (szinte) biztos, hogy jó.

A furcsa a következő:

Ha az entry-ket íratom ki a következőképpen tökéletesen működik:

printf("%s", dictionary[i].entry);

Ha viszont a definition-okat szeretném kiíratni így:

printf("%s", dictionary[i].definition);

Akkor nem íródik ki normálisan, hanem valamiért a prompt (Ubuntu terminál) alá írja ki és csak az utolsó pár karakter látszódik.

Ha rakok bele egy plusz sortörést, akkor viszont tökéletesen működik:

printf("%s\n", dictionary[i].definition);

Valakinek valami ötlet, hogy mi a fene lehet ez?

Először azt hittem a záró \0-kal van a gond, de annak nem így kéne viselkednie.

Sosem láttam még ilyet, fogalmam sincs miért csinálja ezt, bármilyen ötletet nagyon megköszönnék!



2013. okt. 16. 22:46
 1/7 A kérdező kommentje:

Egy kép, hogy egyértelműbb legyen: [link]

Az első fordítás a \n-es, a második anélkül.

2013. okt. 16. 22:51
 2/7 anonim ***** válasza:
Én azt tudom elképzelni, hogy ha nem raksz \n-et, a "kiíró kurzor" abban a sorban marad, a prompt meg az aktuális sor elejére ír.
2013. okt. 16. 23:02
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
nekem a is a terminál bugjának tűnik... próbáld úgy hogy elfordítod és utána nem konzolról indítod.
2013. okt. 16. 23:10
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
esetleg a kiírt szöveg elé dobj be egy \n-t
2013. okt. 16. 23:33
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

"Én azt tudom elképzelni, hogy ha nem raksz

\n-et, a "kiíró kurzor" abban a sorban marad,

a prompt meg az aktuális sor elejére ír."

Bármikor máskor, ha nem rakok sortörést, akkor a prompt a kiírt szöveg után kerül ugyanabban a sorban, de nem rá... Szóval ez akkor sem normális.


" nekem a is a terminál bugjának tűnik...

próbáld úgy hogy elfordítod és utána nem

konzolról indítod."

Ezt kipróbálom, illetve megpróbálom majd máshonnan feltölteni a tömböt...

Plusz \n-eket nem tudok beletenni, mert egysorba kéne kiírni sok mással együtt.

2013. okt. 17. 08:22
 6/7 iostream ***** válasza:
Biztos nem írsz ki semmi szemetet? Egy CR karakter meg tudja dobni a dolgokat. Nem lehet, hogy amiből beolvasol az windowsos fájlvége jelekkel dolgozik?
2013. okt. 17. 10:12
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:

De, ez lesz a baj.

Az eredeti txt-t winben csináltam, gyanús volt, hogy ez lesz a baj...

Este ránézek, nagyon köszönöm!

2013. okt. 17. 10:49

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!