cout cin 的奇怪问题!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/10 21:40:50
#include <iostream.h>
#include <stdio.h>

int main()
{
int a,b;
cout<<"input a:";
cin>>a;
cout<<"input b:";
cin>>b;
return 0;
}
运行后,会提示input a:当我输入2.5时,就不会再让我输入b直接输入input b;press any key to continue
这是为什么啊
我知道是因为定义a为整型的原因,可是更深的原因是为什么?

呵呵 是这样的:
因为 读入时 你开始输入的是2.5 当cin>>a读到“.”时(不是数据)会默认读入a结束,此时a=2
此时缓存中还有“.5”没有被程序取走
再cin>>b时 它会将“.”值传给b
所以就出现了你所见的情况

牛人 这样都给你发现...
以后得详细点 要写个严整类型才行。

楼上:
#include <iostream.h>
#include <stdio.h>
void main()
{
int a,b,c;
cout<<"input a:";
cin>>a;
cout<<"input b:";
cin>>b;
cout<<"input c:";
cin>>c;
}
.
.
.

还是一样哦 并不是8个字节还是4个字节的问题

你输入的a与原程序的a类型不匹配,导致程序异常。

把return 0;这句去掉.
上面的int改成void main().

求学求知求索
楼主这要写也没有错,
这题主要是类型不匹配.

由于int型变量占4个字节,而double型变量(系统默认)占8个字节,故输入2.5相当于输入两个整形变量,输入流接受输入变量后不会再提示输出。