关于scanf和cout的区别的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 02:24:05
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
float x;
printf("Say something:");
scanf("%f",&x);
printf("%f",&x);
return 0;
}
当我输入一个数字,如7.8的时候,会出现错误,要我终止程序
但是当我修改以后,用cout来输出的时候
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
float x;
printf("Say something:");
scanf("%f",&x);
cout<<"x="<<x<<endl;
return 0;
}
却可以正常输出了,这是为什么???

printf("%f",&x);
你把x前面的那个&去掉,加上是取x的地址,取出来之后是一个16位数,你前面的参数%f说明后面想打印个实数,类型不符合,所以电脑就报错了