基本的 。(C 初级)

-5 c printf scanf

我用C编写了以下代码:

#include<stdio.h>
int main()
{
    int num;
    scanf("Enter a number %d",&num);
    printf("%d",num);
    
    return(0);
}
Run Code Online (Sandbox Code Playgroud)

此代码在接受输入后始终返回 32766、32764、32767 等周围的特定值。

为什么会发生这种情况?这些数字有什么特点?

dbu*_*ush 5

传递过来的字符串scanf不是要打印的提示,而是要用户匹配的格式字符串。因此,正如它所写的那样,它希望您输入“输入数字”,然后输入数字。

您应该使用printf打印提示,然后%dscanf格式字符串中只包含格式说明符。

printf("Enter a number ");
scanf("%d",&num);
Run Code Online (Sandbox Code Playgroud)

更好的是,检查 返回值scanf以确保输入与格式说明符匹配。

printf("Enter a number ");
if (scanf("%d",&num) == 1) {
    printf("%d",num);
}
Run Code Online (Sandbox Code Playgroud)