Привет У меня проблемы с sscanf
. Я просто пытаюсь написать простую тестовую программу, чтобы помочь мне понять, как это работает. Проблема возникает при записи в разные переменные с sscanf
. Вот то, что их значения должны быть:Проблемы Sscanf с C
IP = 175.85.10.147
число = 2589
электронная почта = [email protected]
#include <stdio.h>
#include <stdlib.h>
int main() {
char *toSend = "175.85.10.147:2589:[email protected]";
int *number;
char IP[200];
char email[300];
sscanf(toSend, "%[^:]: %i%[^:]: ", IP, number, email);
printf("%s", IP);
printf("%i", number);
printf("%s", email);
return 0;
}
IP-он печатает правильно.
Число не печатается правильно, что может быть связано с этим предупреждением. Я получаю во время компиляции: format '%i' expects argument of type 'int' but argument 2 has type 'int *'
.
Переменная email
по какой-то причине содержит странные персонажи.
Вы передали указатель на int в качестве аргумента функции, которая принимает int в этой позиции. удалите '*' из объявления переменной, чтобы он читал «int number» и посмотрел, работает ли это. – ocket8888
Ну, давайте сначала поговорим о предупреждении. '% i' ожидает' int', и вы даете ему 'number', который является' int * '. – DeiDei
'int * number;' -> 'int number;', 'sscanf (toSend,"% 199 [^:]:% i:% 299s ", IP, & number, email);' – BLUEPIXY