Есть ли способ прочитать небольшой int (то есть 1-байтовый int диапазона -128..127) с использованием scanf
? Рассмотрим этот код:Чтение малого int с помощью scanf
char x;
scanf("%d", &x);
Программа будет читать в Int, вероятнее всего 4 байта, и попытаться записать его по адресу х, тем самым нарушив 3 байта, которые приходят в памяти после этого адреса.
Я знаю, что существует модификатор для короткого int (%h
), но я не слышал об одном для small int (char
)?
Какой язык? В точку? C и C++ разные, и у обоих есть варианты. –
Возможный дубликат [scanf ("% d", char *) - строка формата char-as-int?] (Http://stackoverflow.com/questions/3036396/scanfd-char-char-as-int-format- строка) или [ANSI C (ISO C90): Может ли scanf читать/принимать неподписанный символ?] (http://stackoverflow.com/questions/2231056/ansi-c-iso-c90-can-scanf-read-accept- an-unsigned-char) –
Упс, хороший улов, я хотел удалить тег 'C++'. – Puppy