关于C++输入流的问题

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:57:57
#include "iostream.h"
void main()
{

int a;
cin>>a; //这里我输入d,导致流不正常
cin.sync(); //清空流里面的类容
cin.clear(ios::goodbit); //重置流,failbit eofbit badbit标记位都为0了
cin>>a; //照理说这里应该可以输入了啊,为什么却不行?大家帮帮忙解决下这个问题
}
1楼的朋友 请看清楚题,不要乱说

#include "iostream.h"
改为:
#include <iostream>
using namespace std;
建议使用C++标准头文件,早期的头和标准头文件内容不一样。

你定义的a是整型,输入的d是字符型(char),二者不匹配。

#include "iostream.h"
void main()
{

int a;
cin>>a; //这里我输入d,导致流不正常
while(cin.good()!=1)
{
cin.clear();
cin.ignore();
cin>>a;
}
}
请参看此例,你的sync实际上是让输如清空了,那么又如何从输入流中在拿出一个东西放到a呢,这实际上就是输入流的定向的一些问题,对于你的程序,相信看了我的例子你就明白了吧

这是什么意思哦!
copy代码到vc6.0编译成功!
运行成功!
这个有什么用?!!??!!??!?

我一般是用
cin.clear();
cin.ignore(1024,'\n');