Getchar()或putchar()一直吃掉我输入的第一个字符
getchar() or putchar() keeps eating the first character of my input
编辑:这个问题解决了。谢谢大家的回答
这是我的程序:
#include <stdio.h>
int main(){
printf("write something : n");
int c = getchar();
while((c = getchar()) != EOF){
if (c == ' ' || c == 't')
printf(" n");
else
putchar(c)
}
return 0;
}
每次我运行它,它工作得很好,但是吃掉了我输入的第一个字符例如,当我运行程序时,输出看起来像这样:
write something :
this is a sentence.
his
is
a
sentence.
缺少"t"。为什么会发生这种情况,我该如何解决?
感谢您的宝贵时间。
您输入int c = getchar()
,它将检索"t"
。
然后,当您说while (c = getchar())
时,它将检索"h"
,请注意,您甚至没有机会打印字符,因为您在while
语句中调用了getchar
。
int c = 0;
或int c;
当你在while
循环中调用getchar()
时,你将从第一个字符开始。
int c = getchar()
得到t的值。但是当你调用
while((c= getchar()) != EOF)
再次调用getchar并读取'h'。然后在那之后第一次见到他。总结一下:在调用putchar之前调用getchar两次。一个解决方案将调用
int c = getchar();
putchar(c);
在顶部
相关文章:
- 无法在 C++ 中输入字符数组
- 当我输入字符类型的数字时,为什么我无法获得整数?
- 在不使用字符串库的情况下输入字符*
- 为什么当我输入字符时,这个特定的 cin.get() 语句在C++中不起作用?
- C++中输入字符数组的特定验证
- 如果用户在 int 中输入字符,如何使用输入
- 当我们在以下程序(C )中输入字符时,该如何解决
- 如何在结构中输入字符到向量
- 用户输入逻辑运算符符号或数字,如果输入字符或字符串则无效
- 输入字符时忽略回车键
- 在 switch 语句中输入字符以进行C++时用户输入错误
- 使用Back_inserter从任何位置的输入字符中使用Back_inserter进行过滤数组字符串
- 如何在应该显示的printf之前输入字符
- C++ 输入字符而不是 int 会导致无限循环.如何检查错误的输入
- 为什么"keep_window_open()"不等待输入字符?
- 为什么我的程序在输入字符时有一个无限循环
- 当提示输入整数值时输入字符时,为什么程序会中断
- 关闭回显后如何再次回显输入字符
- 忽略输入字符
- 从文件的单行读取输入字符