readint writeint

 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 }
View Code

  一般情况下,当输入输出数据很大时,应尽量用scanf和printf函数,如果时间效率还不够高,应逐字符输入输出,就像上面的readint()和writeint(i)函数(注意:上面的函数只能处理非负整数, 可自行编写适用于负整数的函数),由此也可以总结,I/O对于输入输出较大时是不可取的。

原文地址:https://www.cnblogs.com/LLGemini/p/3932061.html