Как с помощью cin ввести однобайтовое целое число? Если вводить в char/unsigned char, то вводится символ, но не число. Можно ли как-нибудь настроить так, чтобы cin вводил в char число, а не символ? Знаю, что можно ввести в int и потом преобразовать в char, но интересует именно ввод в однобайтовое без создания временных int'ов
Ответ
@Waylander123, очевидно совсем не то, что Вы хотели, но чем-то похожее (конечно, на Си (а может на Си Вы это и так знали), но g++ воспринимает), а вот cin >> побороть не удалось.
(В комментарий не поместилось, пришлось ответом).
avp@avp-ubu1:~/hashcode$ cat tttx.cpp
#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 байт.
Комментариев нет:
Отправить комментарий