You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

scanf()函数读取年龄失效问题排查与解决咨询

问题解决:scanf无法读取年龄的修复方法

你猜错了,问题根本不在取地址符&上,而是scanf的格式字符串写错了——你用了\d,但C语言里scanf读取整数的正确格式说明符是%d。

修正后的完整代码如下:

#include <stdio.h>

int main()
{
    int age;

    printf("How old are you?");
    scanf("%d", &age);  // 将错误的\d替换为%d

    printf("\nYou are %d years old", age);

    return 0;
}

补充说明:

  • %d是C语言标准的整数格式控制符,scanf通过它识别要读取的是整数类型数据;\d是正则表达式里的语法,C语言的输入函数并不支持。
  • &age的写法是完全正确的,scanf需要接收变量的内存地址才能把读取到的值写入变量中,对int类型变量使用&获取地址是标准操作。

内容的提问来源于stack exchange,提问作者jiwoo_remyomi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 01:55:20