经实测,用 fgets 写的读入函数比用 getchar 快,但为什么人们都习惯用 getchar 写快读而不用 fgets?
getchar 版:
int input() {
int x = 0, f = 1;
char ch = getchar();
while(!isdigit(ch)) {
if(ch == '-') f = -1;
ch = getchar();
}
while(isdigit(ch)) {
x = x * 10 + ch - '0';
ch = getchar();
}
return x * f;
}
fgets 版:
int input() {
char buf[1 << 1 << 10];
fgets(buf, sizeof(buf), stdin);
return stoi(buf);
}