首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

scanf 跟 cin 的区别

2012-09-29 
scanf 和 cin 的区别?#include iostream.h#include stdio.hvoid add(){coutadd\n}void erase(){c

scanf 和 cin 的区别?
#include "iostream.h"
#include "stdio.h"

void add(){cout<<"add\n";}
void erase(){cout<<"erase\n";}
void modify(){cout<<"modify\n";}
void printsalary(){cout<<"printsalary\n";}
void printreport(){cout<<"printreport\n";}

int main(int argc, char* argv[])
{
int select = 0;
void (*func[6])() = {NULL,add,erase,modify,printsalary,printreport};
while (1)
{
cout<<"1--add\n";
cout<<"2--erase\n";
cout<<"3--modify\n";
cout<<"4--printsalary\n";
cout<<"5--printreport\n";
cout<<"0--quit\n";
scanf("%d",&select);//这行代码出了问题???
//cin>>select; //用cin就正常
if (select == 0) return 0;
if (select > 5)
{
cout<<"input error\n";
}
else
func[select]();
}
return 0;
}

上面的代码 为什么用cin>>select; 就能正常使用,cout首先正常打印,然后让用户输入select 的值;

但是如果用scanf("%d",&select); 就卡住了 ,不打印也不做任何操作,用户可以输入值但是没有反应;

那位高手可以指点一下,究竟是为什么呀???

[解决办法]
scanf缓存区默认将回车键也作为用户的输入了

热点排行