Selhání assertu pro funkci isspace při vstupu s háčky – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Selhání assertu pro funkci isspace při vstupu s háčky – C / C++ – Fórum – Programujte.comSelhání assertu pro funkci isspace při vstupu s háčky – C / C++ – Fórum – Programujte.com

 

Huge0
Návštěvník
16. 8. 2008   #1
-
0
-

Zdravím, nevíte
proč použití isspace na 'š' způsobí selhání Assertu, jehož účelem je ověřit, zda je c charakter a který vypadá následnovně:

_ASSERTE((unsigned)(c + 1) <= 256);

Výpis proměnných z watche:
c -25; (unsigned)(c+1) 4294967272

0sobně se domnívám, že je to špatným přetypováním intu c (který ovšem představuje char) na unsigned int, čekal bych spíše, že dojde k oříznutí znaménka, než k čisté reinterpretaci bitů.
Můžete mi doporučit, zda a případně jak (static_cast?) bych mohl tuto kontrolu opravit, aby byla stále funkční, ale nevyhazovala chyby, kde nemá? Přijde mi divné, že by se to dělo u standartní knihovny, v MSVS a ve chvíli, kdy nemá.
Problém nastává přirozeně pouze v módu debugingu (definováno makro _DEBUG), ale je to otravné při ladění a celkově podivné.
Tuším, že tuto problematiku možná řeší knihovna locale (locale.h), ale nemám s ní zkušenosti, pokud vy ano, prosím napište.

Nahlásit jako SPAM
IP: 88.102.203.–
KIIV
~ Anonymní uživatel
8632 příspěvků
16. 8. 2008   #2
-
0
-

Sem resil taky.. pomohlo pouzivat knihovny pro praci s wide char ... sem se divil proc se mi hrouti program pri pouziti isprint(...)
nakonec to bylo opravdu tema wide charama a pouziti iswprint() to vyresilo

Nahlásit jako SPAM
IP: 77.237.136.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 142 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý