1条回答 默认 最新
- NiFuture 2018-10-01 11:44关注
原因: 出现的那个空行是因为你在输完数字10之后敲下的回车被捕捉打印出来了,即被scanf语句后面的 b=getchar() 捕捉,被第一次循环里的 putchar(b) 打印出来了。
解决: 把输入完成后敲的回车吸收掉,不让它被赋值给 b 。
即, 在 b=getchar() 前加一条语句: getchar()#include <stdio.h> int main(void) { int a; char b; scanf("%d", &a); getchar(); //吸收回车字符 b = getchar(); while(b != EOF) { if(b != ' ') { putchar(b); } else { putchar('\n'); } b = getchar(); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥500 求华为P30PRO手机硬盘数据恢复
- ¥15 关于#vscode#的问题:ESP32开发板对接MQTT实现小灯泡的开关
- ¥15 TMC2209串口模式下读取不到寄存器的值串口助手蓝色字体是发过去的消息,绿色字体是收到的消息,第二行发送读取寄存器的指令但是没有读取到寄存器的值串口助手如下图:接线如下图,如何解决?
- ¥15 高通安卓11提取完整线刷包软件,或者优博讯dt50顺丰刷机包
- ¥20 C,有个译码器,换了信道就跑不出原来数据
- ¥15 MIMIC数据库安装问题
- ¥60 基于JTag协议开发Fpga下载器上位机,哪位大🐂有偿指导?
- ¥20 全书网Java爬取数据
- ¥15 怎么获取红包封面的原始链接,并且获取红包封面序列号
- ¥100 微信小程序跑脚本授权的问题