Diskuze: špatně vypisujou stringy
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Nebylo by praktičtější načíst celý řádek?
Do jednoduchého pole char? Práce písmenko po písmenku je dost
neefektivní.
Typický problém Windows a jeho Win-1250...
Tvůj program nejspíš předává konzole znaky jinak kódované, než by očekávala.. Vypadá to, že jí dáváš UTF-8 a ona by chtěla Win-1250.. Klasické ansi znaky (bez diakritiky) ten problém neovlivňuje, protože jsou binárně kompatibilní ve všech sadách.
Zkus trochu pohledat a něco pročíst..
Pěkná teoretická stránka na toto téma je např. http://utf8everywhere.org/
Tady je nějaká funkce, co by ti od pohledu mohla pomoct: https://msdn.microsoft.com/…S.85%29.aspx
Je taky možné, že tvůj program čte ze souboru ve špatném kódování a text se "rozbije" ještě než ho začneš vypisovat. Na to jsou tuším taky nějaké možnosti, jak specifikovat, které kódování se má použít.. Zkusil bych prvně přenastavit konzoli, pak kdyžtak mrknout na to otevření souboru..
Podle mě špatně používáš metodu append. Metoda očekává řetězec ve stylu C, který ale musí být null-terminated. Ty tam předáváš adresu lokální proměnné typu char. Tahle adresa ukazuje na nějaký znak, ale co je v paměti za ním metoda neřeší, prostě ti tam přidá všechny další znaky až dokud nenarazí na nulu, proto ti to do toho stringu přidává nesmysly.
Tohle by možná bylo ono, ale stejně je divný, že Lstring funguje dobře
narozdíl od Pstring.
No ale já už jsem metodu get nahradil getline a vypisuju to už do jednoho
stringu kde s tim už dál bezproblému pracuju. Ale stejně ...
Zobrazeno 5 zpráv z 5.