萌新求助 fread
  • 板块学术版
  • 楼主hanzhongtlx
  • 当前回复5
  • 已保存回复5
  • 发布时间2020/11/27 23:09
  • 上次更新2023/11/5 07:12:56
查看原帖
萌新求助 fread
184500
hanzhongtlx楼主2020/11/27 23:09

萌新今天用了两次 fread 在 洛谷上都 WA 了,第一次怕写错了,第二次从别人的题解里剥的,然而都不对,求解释:

没有负数,没有 long long,实测只写快读可以 AC.

我自己的:

char buf[1<<20],*is=buf,*it=buf;

inline char g()
{
	if(is==it) it=(is=buf)+fread(buf,1,1<<20,stdin);
	return (is==it)?EOF:*is++; 
}

inline int read()
{
	int x=0;
	char c=g();
	while(c<'0'||c>'9') c=g();
	while(c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^'0'),c=g();
	return x;
}

抄的(:

#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)

char buf[1<<21],*p1=buf,*p2=buf;
inline int read()
{
	int x=0;
	char c=getchar();
	while(c<'0'||c>'9') c=getchar();
	while(c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^'0'),c=getchar();
	return x;
}
2020/11/27 23:09
加载中...