错误C2065和IntelliSense

时间:2013-03-27 13:13:39

标签: c++ intellisense

我在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':未声明的标识符9 1ניסיון1

2   IntelliSense: expected an expression    9   8   

谢谢,Peleg

4 个答案:

答案 0 :(得分:1)

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

scanf("%d",&x);

就像你使用printf一样。

答案 1 :(得分:1)

scanf(%d,&x);  
------^^---- 

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

答案 2 :(得分:0)

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

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等格式字符。

答案 3 :(得分: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);

}