Portál AbcLinuxu, 10. května 2025 05:23

Dotaz: Divné znaky ve zdrojáku

17.7.2007 23:02 Adam2
Divné znaky ve zdrojáku
Přečteno: 1651×
Odpovědět | Admin

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:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Luboš Doležel (Doli) avatar 17.7.2007 23:04 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi jste naťukal nějaké nesmysly, už se mi to taky stalo.
17.7.2007 23:26 Adam2
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Dám krk do ohně za to, že nesmysly jsem nenaťukal=) Nestává se mi to občas, ale naprosto pravidelně...
Luboš Doležel (Doli) avatar 17.7.2007 23:39 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Mně se to stává, když mi nějak divně sjedou prsty po klávesnici. Ale taky mě to vytáčí...
17.7.2007 23:20 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle se mi stává velice často hlavně když používám alt k vytvoření [], případně (), je to fakt pitomé, zatím to bohužel jen ručně mažu, soubor si zobrazím pomocí cat -e soubor, tak se ty divné znaky aspoň ukážou, bylo by super kdybych našel způsob jak je i filtrovat aby se vůbec nenapsaly.
17.7.2007 23:30 Adam2
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Používáte levý alt + ASCII kód nebo pravý alt + písmeno?
17.7.2007 23:46 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
pravý alt
18.7.2007 05:32 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Někdy (dost často) se mi při psaní znaků <, > a podobných stává, že držím pravý alt i při psaní mezer, které jsou kolem nich, takže se to taky nepřeloží - Alt+mezera je stray \240
Quando omni flunkus moritati
18.7.2007 13:37 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Nejspíš se mi tedy stává to samé, problém je jak psaní takového znaku například uplně zakázat v gnome-terminalu?
Luboš Doležel (Doli) avatar 17.7.2007 23:49 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Používáte levý alt + ASCII kód
Tohle někde v Linuxu funguje? Já měl za to, že je to obvykle jen na Windows.
18.7.2007 00:08 Adam2
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Já to taky v Linuxu nepotkal, ale zatím jsem pracoval jen s Ubuntu... Tento způsob mi přijde mnohem náchylnější k nechtěnému zadání těch "exotičtějších" znaků, tak mě napadlo jestli Thunder.m nemá nějakou distribuci, ve které to jde
18.7.2007 00:12 Adam2
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Zkusil jsem ten 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;$
17.7.2007 23:21 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkuste v tom editoru napsat co nejkratší text, obsahující tu posloupnost ' << ' (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.
17.7.2007 23:58 Adam2
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku

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í)

18.7.2007 00:28 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
A jsme doma, to C2 A0 je UTF-8 zápis znaku U+00A0, což je nedělitelná mezera. Navíc to vypadá, že překladač céčka očekává vstup v ISO-8859-2, takže je z toho zcela zmaten. V každém případě byste měl svému editoru rozmluvit to automatické nahrazování obyčejných mezer nedělitelnými.
18.7.2007 12:49 Adam2
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Tak už mi to funguje, dík za pomoc
18.7.2007 14:24 R
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
To je nejaky cesky/slovensky alebo aky prekladac, ze caka vstup v ISO-8859-2?
18.7.2007 15:20 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Proč? Čte jednotlivé znaky. A aby je mohl číst, potřebuje vědět, jaké je vstupní kódování. Ona vesnice se nám změnila, dnes už máme i kódování, kde jeden znak neodpovídá nutně jednomu byte. Jestli 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ě).
Josef Kufner avatar 18.7.2007 20:21 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Pokud vím, tak UTF-8 je zpětně kompatibilní s ASCII, a používat něco jiného vícebajtového mi přijde poněkud zvrhlé (nemluvím o vnitřní reprezentaci řetězců v programu). A snad u všech jednobajtových kódování, které znám a které se používají je ta základní sada znaků také stejná. Takže jako optimální řešení mi přijde to, že kompilátor tupě předpokládá ASCII a ten zbytek už se nějak vsákne. Přecijen, kodováním se stačí zabývat jen při načítání a výpisu řetěců a jejich řazení (hledání), což ale není problém překladače.
Hello world ! Segmentation fault (core dumped)
18.7.2007 18:15 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Casto lze psat pevne mezery pomoci alt-space. Takovahle chyba se muze stat kdyz stistkne space driv, nez pusti alt.
18.7.2007 18:15 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Nebo mozna asi spis shift misto alt.
18.7.2007 07:14 ikarlos
Rozbalit Rozbalit vše Re: Divné znaky ve zdrojáku
Odpovědět | | Sbalit | Link | Blokovat | Admin
nepomohlo by mít pro psaní programu v C nastaveno LANG=C nebo třeba aspoň LC_CTYPE=cs_CZ.ISO8859-2 nebo něco podobného a terminálovou imput metodu přepnutu na ISO... ?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.