C string kiíratása printf () -fel?
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!
Egy kép, hogy egyértelműbb legyen: [link]
Az első fordítás a \n-es, a második anélkül.
"É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.
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!
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!