在尝试编写仅允许数字字符串的程序时,我收到以下警告:
警告:格式“%s”需要 char * 类型的参数,但参数 3 的类型为“char (*)[100]”
为什么我会收到此警告,它的含义/后果是什么?运行代码没有任何问题。
程序:
char check[100];
char line[100];
int i;
int true = 0;
int main
{
fgets(line, sizeof(line), stdin);
sscanf(line, "%s" , &check);
for(i=0; i<3; i++)
{
if(isdigit(check[i]) == 0)
{
true++;
}
else
continue;
}
if(true>0)
printf("Not a number.\n");
else
printf("Is a number.\n");
return(0);
}
最佳答案
编译器提示在下一行中使用 &check
。
sscanf(line, "%s" , &check);
预期的参数只是check
。
sscanf(line, "%s" , check);
关于c - sscanf 格式警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30082694/