我正在解决一个需要非常快速的输入/输出的问题。更准确地说,输入数据文件最大为 15MB。是否有一种快速、读取/打印整数值的方法。
注意:我不知道它是否有帮助,但输入文件具有以下形式:
- 第 1 行:一个数字 n
- 第 2..n+1 行:三个数字 a、b、c;
- 第 n+2 行:一个数字 r
- 第 n+3..n+4+r 行:四个数字 a,b,c,d
注 2:输入文件将为stdin
.
编辑:像下面这样的东西还不够快:
void fast_scan(int &n) {
char buffer[10];
gets(buffer);
n=atoi(buffer);
}
void fast_scan_three(int &a,int &b,int &c) {
char buffval[3][20],buffer[60];
gets(buffer);
int n=strlen(buffer);
int buffindex=0, curindex=0;
for(int i=0; i<n; ++i) {
if(!isdigit(buffer[i]) && !isspace(buffer[i]))break;
if(isspace(buffer[i])) {
buffindex++;
curindex=0;
} else {
buffval[buffindex][curindex++]=buffer[i];
}
}
a=atoi(buffval[0]);
b=atoi(buffval[1]);
c=atoi(buffval[2]);
}