Portál AbcLinuxu, 10. května 2025 05:23
Zdravím, když napíšu nějaký program v c++ a použiju operátor <<, překladač mi nahlásí chyby jako
stray ‘\302’ in program
které se liší jen číslem. Jediné, co se mi podařilo zjistit je, že znaky zmizí, když odmažu mezery kolem operátoru. Soubor jsem zkoušel zobrazit ve windows a ty ukázaly znaky jako  apod. Zdroják jsem psal ve vim a gedit (kódování v gedit mám UTF-8, ve vimu nevím), ale výsledek je pořád stejný. Půjde s tím něco udělat?
Řešení dotazu:
Používáte levý alt + ASCII kódTohle někde v Linuxu funguje? Já měl za to, že je to obvykle jen na Windows.
cat -e
a opravdu - na postižených místech se objevily nějaké kódy, ze kterých moc moudrý nejsem...
cout << "Hello world!!" <<M-BM- endl;$
<<
' (např. jeden řádek s textem 'X << X
'), uložit a podívat se, co vám o tom souboru řekne 'od -t x1
'. Mám podezření, jestli nemáte zapnutou nějakou funkci, která vám '<<
' automaticky nahrazuje "ruskými" (francouzskými?) uvozovkami.
Protáhl jsem tím celý zdroják (v tom malém souboru mi to nedělalo - už fakt nevím...) a výslededek vypadá takto:
20 3c 3c c2 a0 65
(je to ten chybný úsek, bordelaří tam c2 a a0 a mezera mezi 3c a 65 chybí)
gcc
respektuje příslušné proměnné prostředí nebo jestli prostě automaticky předpokládá C
, to je v tomto případě celkem jedno, tak či onak načte jen první polovinu toho dvoubytového znaku (to je to C2 šestnáctkově resp. 302 osmičkově).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.