关于快读
  • 板块学术版
  • 楼主ღꦿ࿐
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/2/2 17:00
  • 上次更新2023/10/24 02:02:08
查看原帖
关于快读
161697
ღꦿ࿐楼主2023/2/2 17:00

这是我的快读:

#define MAXSIZE (1<<20)
char *p1=NULL,*p2=NULL,buf[MAXSIZE];
#ifdef DEBUG
#define gchar() getchar()
#else
#define gchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,MAXSIZE,stdin),p1==p2)?EOF:*p1++)
#endif
inline void read(char *x){
    char ch=gchar();
    while(ch==' '||ch=='\n'||ch=='\r')ch=gchar();
    do *x++=ch,ch=gchar(); while(ch!=' '&&ch!='\n'&&ch!='\r'&&ch!=EOF);
    *x='\0';
}

实现了读入字符数组。

但是我发现当文末没有换行时会RE,用了很久才发现,不太清楚哪里错了求调。

2023/2/2 17:00
加载中...