Страницы

Поиск по вопросам

пятница, 12 июля 2019 г.

Ввод однобайтового числа

Как с помощью cin ввести однобайтовое целое число? Если вводить в char/unsigned char, то вводится символ, но не число. Можно ли как-нибудь настроить так, чтобы cin вводил в char число, а не символ? Знаю, что можно ввести в int и потом преобразовать в char, но интересует именно ввод в однобайтовое без создания временных int'ов


Ответ

@Waylander123, очевидно совсем не то, что Вы хотели, но чем-то похожее (конечно, на Си (а может на Си Вы это и так знали), но g++ воспринимает), а вот cin >> побороть не удалось. (В комментарий не поместилось, пришлось ответом). avp@avp-ubu1:~/hashcode$ cat tttx.cpp #include #include #include
using namespace std; int main(int ac, char *av[]) { char x;
scanf("%hhd", &x); cout << "C++: x=" << (x & 0xff) << '
'; printf ("C: x=%d
", x & 0xff); }
avp@avp-ubu1:~/hashcode$ g++ tttx.cpp avp@avp-ubu1:~/hashcode$ ./a.out 12 C++: x=12 C: x=12 avp@avp-ubu1:~/hashcode$ ./a.out 234 C++: x=234 C: x=234 avp@avp-ubu1:~/hashcode$ Обратите внимание на формат "%hhd" в scanf(). Модификатор hh указывает на 1 байт.

Комментариев нет:

Отправить комментарий