问题标签 [getchar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
15832 浏览

c - 使用函数在 C 中打印字符串

我是 C 的新手,正在尝试学习如何获取字符串并使用函数打印它。我到处都看到使用 的示例while(ch = getchar(), ch >= 0),但是一旦我将它放入一个函数(而不是 main()),它就停止工作了。现在,它陷入了无限循环……这是为什么呢?

0 投票
5 回答
68392 浏览

c - 在 c 上使用 getchar() 会在输入后获得“Enter”

我正在尝试编写一个简单的程序,要求用户从循环中的菜单中进行选择。我使用 getchar() 来获取输入,但是我注意到当我输入一个字符并按“Enter”时,程序会进行两个循环(好像我按了两次)一个字符作为输入,另一个用于“Enter”作为输入。

我该如何解决?

0 投票
1 回答
1222 浏览

c - fgets()之后换行符留在缓冲区中?

这是导致我出现问题的代码片段:

在我输入名称并按 Enter 后,getchar() 也会捕获换行符,而不是等待下一个字符。我怎样才能修复我的代码(如果可能的话,不要像另一个 getchar() 这样的hacky),以便 getchar() 在输入名称后按预期等待字符?

0 投票
3 回答
3286 浏览

c - C中的“文件结尾”是什么意思?

在上面的代码中,哪个字符会打破循环?
我是C新手,请帮助我。
另外,这个错误是什么意思:
codec5.c:8:2: warning: no newline at end of file

0 投票
3 回答
23452 浏览

c - 如何刷新控制台缓冲区?

我有一些重复运行的代码:

printf("要继续吗?Y/N: \n");
继续玩 = getchar();

在接下来我的代码正在运行它不等待输入。我发现 getchar 在第二次使用 '\n' 作为字符。我猜这是由于 sdio 有一些缓冲区,所以它保存了最后一个输入,即“Y\n”或“N\n”。

我的问题是,如何在使用 getchar 之前刷新缓冲区,这将使 getchar 等待我的回答?

0 投票
4 回答
9801 浏览

c - 从C中的文件读取输入

好的,所以我有一个输入文件,我可以成功计算每行中的单词和字符的数量。当我使用下面的代码到达行尾时,它会退出循环并仅读取第一行。如何继续输入下一行以继续程序?

编辑:我必须分别解析每一行,所以我不能使用 EOF

0 投票
1 回答
15380 浏览

c - getchar() 并逐行读取

对于我的一项练习,我们需要逐行阅读并仅使用 getchar 和 printf 输出。我正在关注 K&R,其中一个示例显示了使用 getchar 和 putchar。根据我的阅读,getchar() 一次读取一个字符,直到 EOF。我想要做的是一次读取一个字符直到行尾,但将写入的任何内容存储到 char 变量中。因此,如果输入 Hello, World!,它也会将其全部存储在一个变量中。我尝试使用 strstr 和 strcat 但没有成功。

0 投票
2 回答
185 浏览

c - 关于 C 中的 getchar() 的问题?

我正在学习和阅读一本 C 书。在书中,他们说:“getchar() 从标准输入流缓冲区中检索单个字符,而不转换输入。”

我不明白作者所说的“不翻译输入”是什么意思。我试过谷歌搜索,但没有运气。

谢谢。

0 投票
3 回答
614 浏览

c - 当scanf需要一个int但接收到字符时如何防止菜单出现故障(C)

举个例子:

通常我添加 getchar() 以防止程序无限循环(从缓冲区中读取 '\n' 字符)。但是,当与此语句后面的菜单一起使用时,会读入额外的字符,并且会跳过字符输入之后的任何 scanfs(最多输入字符数)。

我想弄清楚的是,当它读入非 int 类型的输入时,如何防止它跳过我的程序的几个部分。最好将其放在一个循环中,直到变量处于预期域中才会继续?

0 投票
2 回答
9895 浏览

c - 为 getchar() 添加超时

我需要在我的程序中为 getchar() 添加一个超时函数。

我该怎么做,当我的程序到达指令 getchar() 时,它只会等待一定的时间让用户进行击键,如果用户在给定的时间限制内没有击键,程序会“跳过”getchar()吗?

操作系统不支持 conio.h 库,因此 kbhit 不是一个选项。