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
相关产品推荐
相关产品推荐

