C++ cin cout scanf printf

2024-11-24 11:06:30
推荐回答(5个)
回答1:

scanf, cin 速度不好比较,快慢主要看人打字,而不是计算速度。
cout,printf 我的计算机和编译器状况下 cout 快。

C++ 用 cout 花了 8 秒
#include
#include
using namespace std;
int main()
{
time_t now,t_end;
double dif;
float a=1.234;
int i;
now = time (NULL);
for (i=0;i<100000;i++) cout << a ;
t_end = time (NULL);
dif = difftime (t_end,now);
cout << endl;
cout << dif;
return 0;
}

C 用 printf 花 12 秒。
#include
#include

void main()
{
time_t now,t_end;
double dif;
int i;
now = time (NULL);
for (i=0;i<100000;i++) printf("%f ",1.234);
t_end = time (NULL);
dif = difftime (t_end,now);
printf("\n--dif=%lf",dif);
}
----
#include 不影响计算速度,因为#include 用于编译过程,不是运行过程。
书上说的不一定正确。要自己实践。

回答2:

可能是编译器的问题
scanf和cin其实有办法比较的,freopen重定向stdin到某个文件就好了
还有一个办法,用cmd,输入文件>你的测试程序

回答3:

cin和cout没有明确规定数据的输入和输出格式,系统需要检查数据类型后方可输出,而scanf,printf明确规定了数据格式,系统省略了判断数据类型这一环节,故速度会较快.
比较两者速度的话可以用文件输入输出来判断,而不是像前面的人说的看打字人的快慢....
PS:小数据读入比较不是很明显,用大数据就可以看出两者之间的明显区别了.

回答4:

include是调用库函数,c++中没有scanf和printf;当包含#include ,会在执行时调用c中的函数,而cout和cin 是c++输入输出流函数,在g++编译C++程序时肯定用时少

回答5:

while(scanf("%d",&n)!=EOF)
没加EOF