最近写数据结构题的时候,为了提高输入效率,我尝试将每种操作的提示字符 opt 用 getchar() 进行读入。速度是快了不少,但交上去全 WA。
问题在于以下代码:
#include<bits/stdc++.h>
using namespace std;
inline int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
return x*f;
}
int T;
char ch;
signed main(){
T=read();
while(T--){
ch=getchar();getchar();
cout<<ch<<'\n';
}
return 0;
}
3
a
b
c
显然,这份代码的目的是将读入的字符打印出来,本地可以输出正确结果,洛谷IDE却会把一些ch当成换行符。
有人知道这是怎么回事吗/kel;