摘要:
在MS VS2010上用scanf函数读入一个double数据,代码如下#include<stdio.h>int main(){ double n; scanf("%f",&n); printf("sum=%f\n",n); return 0;}输入2,发现返回的是一个很小的负数,百思不得其解,后来发现是格式控制的问题,只要把格式控制符变成%lf就正常了。再试了一下float类型的数据,如果格式控制符用%lf同样会报错。因此,结论是scanf函数的格式控制符必须和数据类型匹配,%lf对应double类型,%f对应float类型。 阅读全文