Dobrý den, chtěl jsem se zeptat, z jakého důvodu se, když mám následující kód
char a;
int b;
a=getwchar();
cin >> b;
cin >> b;
cin >> b;
provede čtení z vstupu pouze pomocí getwchar() a následující cin jsou přeskočeny? Děkuji za odpovědi
Dobrý den, chtěl jsem se zeptat, z jakého důvodu se, když mám následující kód
char a;
int b;
a=getwchar();
cin >> b;
cin >> b;
cin >> b;
provede čtení z vstupu pouze pomocí getwchar() a následující cin jsou přeskočeny? Děkuji za odpovědi
první čtení skončí chybou, protože se snažíš "multibyte character" načíst do proměnné o velikost 1 byte. Příklad správného použití viz http://www.cplusplus.com/reference/cwchar/getwchar/
hu
Právě, že kupodivu žádná chyba nenastane.. program jde zkompilovat přes "g++ -pedantic -Wall" bez errorů i warningů.. Jako, je mi jasné, že bych měl buďto použit "cin >> a" nebo změnit "char a" na "wchar_t a". Ale zajímá mě, z jakého kontrétního důvodu to takto je... Myslel jsem, že něco zůstává na vstupním bufferu, ale tímto nebude, protože i když je těch cinu za sebou třeba 20, stejně mě už program nenechá nic zadat.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku