c++中cin和scanf的区别
很多初学者总是纠结在C++中使用cin还是scanf。今天,我来给大家盘点一下cin和scanf的区别。
1.时间上的差距
这是一个最重要的因素,这也是为什么很多C语言的资深程序员喜欢使用scanf的原因。
在同样输入一个数,cin的编译时间大约是scanf的3~4倍。所以,在使用大量数据的时候,cin的运算速度明显要满于scanf。
简单来讲scanf 和 cin 在时间效率上差别很大的原因是:
在scanf元素的类型我们已经告知了,机器不用再去查找元素类型,scanf需要自己写格式,是一种格式化输入。
而在cin 元素类型由机器自己查找,cin是字符流输入,需要先存入缓冲区再输入。
举个例子吧:
曾经就遇到过这样的情况(类似的),
int i;
cout<<'a';
cin>>i;
cout<<'b';
运行结果什么都没看到输出,输入一个整型比如3再按回车后ab同时显示出来了。
但是这样的情况并不是经常发生,是在一些比较大型的工程中偶尔出现,原因是字符a先到了缓