%c和gets都不行,%s就过了?

P5730 【深基5.例10】显示屏

mikisayaka @ 2023-02-08 12:11:58

接收数字的时候%c和gets都是WA,%s就过了,但是这三种在本地devc上都是一样的效果,是因为洛谷的编译器有什么问题吗?


by Terrible @ 2023-02-08 12:21:48

@mikisayaka

不加getchar()%c%s即便在本地也不是一个效果。

%c会读入空格、换行符、回车符,而且洛谷的某些数据(包含本题)末尾都是\r\n,你本地控制台输入的时候末尾只是\n,一次getchar()不够。

gets在洛谷C++里是不被允许编译通过的,只能在洛谷C语言提交里用,用洛谷C++请用其他读入方式,例如fgetsfread

如果要求读入非空白字符,请在%c前面加一个空格,也就是%c,空格会匹配掉空白字符。


by Terrible @ 2023-02-08 12:23:07

scanf(" %c",&c);

行内程序段会吞空格。。


|