标准输入的摘要
1. 标准输入
一般来说,我们写程序时候的标准输入,是这样的:
cin>>n;
但是这样太慢了。
所以我们需要格式化输入:
ios::sync_with_stdio(false);
cin>>n;
或者
scanf("%d",n);
但是,因为计算机程序语言调用的是内存临时存储,即使格式化输入,但是仍然速度很慢。
所以,有没有办法??
有
2. 函数输入
首先,我们需要调用硬盘数据:
int main()
{
int n;
freopen("114514.in","r",stdin);
cin.tie(0),cout.tie(0);
ios::sync_with_stdio(false);
cin>>n;
......
return 0;
}
然后,我们再自己编一个函数程序:
int read()
{
int x=0,y=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') y*=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=(x<<3)+(x<<1)+(c^'0');//其实就是 x=x*10+c-'0';
c=getchar();
}
return x*y;
}
于是,完整程序就是这样的
#include <bits/stdc++.h>
using namespace std;
......
int read()
{
int x=0,y=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') y*=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=(x<<3)+(x<<1)+(c^'0');
c=getchar();
}
return x*y;
}
int main()
{
int n;
freopen("114514.in","r",stdin);
cin.tie(0),cout.tie(0);
ios::sync_with_stdio(false);
n=read();
for(int i=1;i<=n;i++){
......=read();
......
}
......
return 0;
}
本文来自博客园,作者:fyder黯然,转载请注明原文链接:https://www.cnblogs.com/shaoziqi/p/16859999.html