C++整形数读取字符的问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 16:12:03
#include<iostream>

using namespace std;

int main()
{
long int i;

cin>>i;

cout<<i<<endl;

//fflush(i);
cin>>i;
cout<<i<<endl;

system("pause");
return 0;
}

为什么输入一个字符后就直接显示两个2???
然后只让我输入一次,怎么才能让我输入两次???
输入一个字符,显示出来两个2,难道没有吗??
我用DEV和visualC都试过了

把你的程序简化了一下,呵呵:

#include<iostream>
using namespace std;
int main()
{
char a[100];
cin>>a;
cout<<"a : "<<a<<endl;
cin>>b;
cout<<"b : "<<b<<endl;
return 0;
}

long int i; 换成char
ANSIC中你这么做是为定义事件。出现你的情况应该正常。

定义的类型一定要匹配!
char c
scanf("%d",&c);同样有错,注意占据的位数

这个程序没有你描述的现象,可以正确运行。

这个程序的执行过程是:
输入一个字符,回车,之后会在下一行输出刚才输入的字符。
然后再输入一个字符,回车,之后会在下一行输出刚才输入的字符。

在DEV-C++,VC++,BCB,GCC下编程运行,正确无误。