У меня есть этот код:Как извлечь целое число от характера
int num[10] ;
sscanf(msg, "%d%d%d%d%", &num[0], &num[1], &num[2], &num[3]);
int x = num[0]; // integer
int y = num[1]; // integer
int z = num[2]; // integer
int c = num[3]; // integer
я получил проблему из приведенного выше кода, когда я пишу «131249», так что результат:
x = 177
y = -8755
z = -21206
c = -246
но ожидаемое значение должно быть
x = 13
y = 12
z = 4
c = 9
Как получить ожидаемое значение, есть ли какие-либо ошибки в моем коде?
Строка «131249», которую вы вводите, интерпретируется как одно целое число. (sscanf должен вернуться 1.) Попробуйте «13 12 4 9». Значения y, z и c - это то, что происходит в памяти. (Хотя, по общему признанию, я не могу объяснить значение 177.) –
Если вы пишете «131249», как вы можете ожидать 13 12 4 9? Почему не 131 2 4 9 или 1 3 12 49? – 5208760
PeterSchneider и Mateusz Kwaśniak, да это сработало с интервалом, но вход принудительно «131249» – athirah