DEV C++有关于CIN的几个问题

1、要使用cin需要添加

using namespace std;

同时需要添加头文件:

#include <iostream>

2、输入的内容如何预防出错,如何清空缓冲区:

#include <iostream>
#include <math.h>
//#include <ipmapip>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
long b,c;
long  d; 
using namespace std;

int main(int argc, char** argv) {
	b=8;
	c=3;
	d=(b+c);
	d=pow(d,c);
//	printf("%d",d);
//	cout<<d<<endl; 
//	cout<<d+d<<endl;
//	cin>>d;
//	cout<<d<<endl;
	while(c!=9999)
		{
			cout<<"请输入一个数字:";
		//	c=0;
		//		fflush(stdin);
		cin.clear(); //清除掉输入缓冲区中的内容避免错误 
		cin.sync();
		
		/*
		
		cin.clear()是用来更改cin的状态标示符的,cin在接收到错误的输入的时候,会设置状态位good。如果good位不为1,
		则cin不接受输入,直接跳过。如果下次输入前状态位没有改变那么即使清除了缓冲区数据流也无法输入。
		所以清除缓冲区之前必须要cin.clear()。


		cin.ignore(a,ch):从输入缓冲去中提取字符,提取的字符被忽略,不被使用。每抛弃一个字符,它都要计数和比较字符,
		如果计数值达到a或者被忽略的字符是ch,则cin.ignore()函数终止执行。默认参数是a=1,即仅忽略缓冲区中的第一个字符。
		它的一个常用功能是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。比如cin.ignore(1024,'\n'),
		通常把第一个参数设置得足够大,这样实际上总是只有第二个参数起作用,所以这一句就是把回车(包括回车)之前的所有字符从输入缓冲区中清除。


		cin.sync()的作用是清除输入缓冲区全部的内容。
		
		*/
		
			cin>>c;
	//	cin.get( c);
		if (cin.fail()==0){
		 
		
			cout<<"您输入的数字是:"<< c <<endl; 
		} else
		{
			cout<<"您输入了非法的内容!"<<endl; 
		 } 
		}
	return 0;
}


猜你喜欢

转载自blog.csdn.net/luoyibazi/article/details/80021032
Dev