说实在的,我一直用的是cin和cout。但scanf确实更快(虽然书写麻烦点……)
虽说都是输入,但性质不同。cin是输入流,scanf是格式化输入。
关于为什么scanf更快……
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
cout<<"QAQ";
cin>>n;
cout<<"QWQ";
return 0;
}
当运行程序时,只有输入了n,才会输出"QAQ"和"QWQ"。
简单来说,就是只有当执行完所有的cin命令时,程序才会往下运行。所以当数据很多时,cin就显得慢了。
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
printf("QAQ");
scanf("%d",&n);
printf("QWQ");
return 0;
}
当运行程序时,先会输出"QAQ",然后输入n,输出"QWQ"。
简单来说,scanf是输入一个数,执行一下程序。所以当数据很多时(尤其是for循环),scanf就会快很多。举例:
#include<bits/stdc++.