关于 getchar() 的一点疑问
  • 板块学术版
  • 楼主hs_wfz_orz
  • 当前回复14
  • 已保存回复14
  • 发布时间2022/8/1 11:49
  • 上次更新2023/10/27 17:32:06
查看原帖
关于 getchar() 的一点疑问
174878
hs_wfz_orz楼主2022/8/1 11:49

最近写数据结构题的时候,为了提高输入效率,我尝试将每种操作的提示字符 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;

2022/8/1 11:49
加载中...