2

我在 C++ 上编程,我对该代码有以下错误:

#include <stdio.h>

int main(int argc, char* argv[])
{ int x;
    printf("%d","Please enter a number\n");
    scanf(%d,&x);
    printf("%d","You entered 56\n");

}

这是错误: 错误 1 ​​错误 C2065: 'd' : undeclared identifier 9 1 ניסיון1

2   IntelliSense: expected an expression    9   8   

谢谢, 佩莱

4

4 回答 4

1

的第一个参数scanf应该是一个以 null 结尾的字符串:

scanf("%d",&x);

就像您对printf.

于 2013-03-27T13:14:38.900 回答
1
scanf(%d,&x);  
------^^---- 

应该scanf("%d",&x);

于 2013-03-27T13:16:45.443 回答
0

正如其他人已经说过的那样, scanf 需要一个格式字符串,所以你必须写

scanf("%d", &x);

此外,您对 printf 的使用不会产生您想要的结果。传递给 printf 的第一个字符串是输出格式字符串。"%d"表示下一个参数是整数。您的下一个参数是字符串的地址。你真正想写的是这三行之一:

printf("%s", "Please enter a number\n");
printf("Please enter a number\n");
puts("Please enter a number");

最后一行最适合您的情况。第二行也很好,但只是因为字符串不包含格式字符,如%d.

于 2013-03-27T13:27:44.570 回答
0

问题在于您scanf(%d,&x);陈述的第一个论点。这个参数应该是一个空终止的字符串。您的代码在下面重写:

#include <stdio.h>

int main(int argc, char* argv[])
{ 
    int x;
    printf("Please enter a number %d\n");
    scanf("%d",&x);
    printf("You entered %d\n", x);

}
于 2013-03-27T13:27:57.490 回答