|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
scanf函数对format参数的使用说明中提到:
format 参数是一个格式化字符串,由格式化占位符和普通字符组成。
除了格式占位符(% 开头)外的非空白字符:指定函数必须从输入流中读取到的字符,如果读取不匹配,则函数调用失败,并从匹配失败处截断输入流
我将下列代码中的scanf("%d", p) 改为 scanf("12%d", p),并在运行中写 12500 ,能获得500的正确答案
可是我若改成scanf("输入%d", p),并在运行中写 输入500 ,并不能获取500的正确答案,只能获取100,应该是因为读取不匹配,被截断了输入流,请问这里为什么会读取不匹配呢?
#include <stdio.h>
int main()
{
int a,*p ;
a =100;
p = &a;
printf("请输入a的值:");
scanf("%d", p);
printf("a的值为:%d", a);
return 0;
}
楼主你好 我这边试过了 是正确的
这里我总结了2个原因,还望楼主排查下看看
1. 编译器不同可能会导致不同成果(这是C标准的语法,这个可能性极小 我用的 VS2015)
2. 楼主在scanf的时候是不是有空格之类的其他符号 而输入的时候没输入进去等
3. 如果还没解决 还希望楼主贴张图出来,这样更方便观察
|
|