有这么一段代码:
struct io{
char ibuf[1<<22],obuf[1<<20],*s,*t;
int a[24];
io(){
fread(s=ibuf,1,1<<22,stdin);
}
~io(){
fwrite(obuf,1,t-obuf,stdout);
}
inline int read(){
register int u=0;
while(*s<48) s++;
while(*s>32) u=u*10+ *s++ -48;
return u;
}
template<class T>
inline void print(register T u){
static int *q=a;
if(!u) *t++=48;
else{
if(u<0) *t++=45,u*=-1;
while(u) *q++=u%10+48,u/=10;
while(q!=a) *t++=*--q;
}
*t++='\n';
}
}ip;
#define read ip.read
#define print ip.print
fread()
是可以在控制台输入的吧,最后 Ctrl+Z
结束,但用 fwrite()
该如何输出呢?