Я пытаюсь получить очень большое число (более unsigned long long int
). Поэтому я получаю его в виде строки, а затем преобразую его, di git на di git, в целое число и использую его.
#include <stdio.h>
#include <string.h>
int main()
{
char m[100];
int x;
scanf("%s",m);
for(int i=0; i<strlen(m); i++){
sscanf(m[i],"%d",&x);
printf("%d",x);
}
return 0;
}
Однако во время компиляции он показывает:
предупреждение: передача аргумента 1 из 'sscanf' делает указатель из целого числа без приведения
и
примечание: ожидается 'const char * restrict', но аргумент типа 'char'
И когда я запускаю программу, она выдаст мне ошибку Segmentation fault (core dumped)
.
Я также попробовал более простой код, чтобы найти проблему:
#include <stdio.h>
#include <string.h>
int main()
{
char m[5];
char n;
int x;
scanf("%s",m);
n = m[1];
sscanf(n,"%d",&x);
return 0;
}
но ничего не изменилось.