1 inline int readint() 2 { 3 char c = getchar(); 4 while(!isdigit(c)) c = getchar(); 5 6 int x = 0; 7 while(isdigit(c)) 8 { 9 x = x*10+c-'0'; 10 c = getchar(); 11 } 12 return x; 13 } 14 15 int buf[10]; 16 inline void writeint(int i) 17 { 18 int p = 0; 19 if(i == 0) p++; 20 else 21 while(i) 22 { 23 buf[p++] = i%10; 24 i /= 10; 25 } 26 for(int j = p-1; j >= 0; j--) 27 { 28 putchar(buf[j]+'0'); 29 } 30 }
一般情况下,当输入输出数据很大时,应尽量用scanf和printf函数,如果时间效率还不够高,应逐字符输入输出,就像上面的readint()和writeint(i)函数(注意:上面的函数只能处理非负整数, 可自行编写适用于负整数的函数),由此也可以总结,I/O对于输入输出较大时是不可取的。