getchar()与ch=getchar()

#include <stdio.h>

int main(void)
{
int input;
char ch;

while(scanf("%d", &input) != 1)
{
while((ch = getchar()) != '\n')
putchar(ch);
printf(" isn't a integer.please input again\n");
}
printf("%d\n", input);

return 0;
}

图如下。 我不明白这两个区别在哪
...全文
122 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
庚武讲堂 2015-08-16
  • 打赏
  • 举报
回复
// 1
while((ch = getchar()) != '\n')
            putchar(ch);
// 2			
while((getchar()) != '\n')
            putchar(getchar());
getchar()每调用一次,指针往后移动了一位。第2种调用了2次getchar(), 是错的。每次只输出了第2,4,6,8...个字符,因为中间的,被第一个getchar()消耗掉了,而你又没保存输出。
  • 打赏
  • 举报
回复
引用 楼主 Real_Bird 的回复:
#include <stdio.h> int main(void) { int input; char ch; while(scanf("%d", &input) != 1) { while((ch = getchar()) != '\n') putchar(ch); printf(" isn't a integer.please input again\n"); } printf("%d\n", input); return 0; } 图如下。 我不明白这两个区别在哪
我太疏忽了。。多谢

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧