问题标签 [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 投票
1 回答
578 浏览

c++ - 使用 getchar() 和 -O3 的奇怪行为

我有这两个功能

然后我将功能更改为:

这两个函数都由外部代码调用,两个程序的代码是相同的,只是更改 getchar() 我得到了这两个不同的输出。这是可能的还是我的代码中确实有问题?

谢谢

这是我使用 GDB 得到的输出**

对于第一个代码

对于第二个代码

0 投票
5 回答
55358 浏览

c - 如何模拟 EOF?

我目前正在阅读 K&R 的书并输入第一部分的示例,其中有几个示例如下:

我正在 Windows 机器上测试这些示例,从而从cmd提示符运行编译的 exe 文件。

为了测试上面的例子,我如何模拟一个EOF?也就是说,基本上如何在命令提示符下测试示例时使循环停止?

0 投票
10 回答
41279 浏览

c - 为什么 getchar() 不等我在 scanf() 之后按回车?

我正在学习 C,我正在使用“getchar()”来停止命令窗口,这样我就可以看到正在做的练习,但它只是不起作用。这是一个样本:

这是输出:

  1. 选项1。
  2. 选项 2。
  3. 选项 3。
  4. 出口。

做一个选项:1

您选择了选项 1。

进程返回 0 (0x0) 执行时间:3.453 s

按任意键继续。

为什么不等待“getchar()”的输入?

0 投票
7 回答
25785 浏览

c - C语言中的EOF问题

我正在编写一个程序,它应该读取两个可以包含换行符和各种其他字符的字符串。因此,我使用 EOF(Ctrl-Z 或 Ctrl-D)来结束字符串。

这适用于第一个变量,但是对于第二个变量,这似乎是有问题的,因为显然某些东西卡在输入缓冲区中并且用户无法输入任何内容。

我试图用while (getchar() != '\n');几个类似的变化来清理缓冲区,但似乎没有任何帮助。所有的清理尝试都导致了一个无限循环,如果不清理,添加第二个变量是不可能的。

这两个变量的字符都是在这样的循环中读取的:while((c = getchar()) != EOF),这表明它是我卡在缓冲区中的 EOF。或者它是否以其他方式影响程序的行为?我使用的逻辑有问题吗?

在为此苦苦挣扎了几个小时后,我开始变得有些绝望。

代码:

0 投票
13 回答
138172 浏览

c - 如何避免使用 getchar() 按 Enter 键仅读取单个字符?

在接下来的代码中:

我必须按Enter打印我输入的所有字母getchar,但我不想这样做,我想做的是按下字母并立即看到我介绍的字母重复而不按Enter。例如,如果我按下字母“a”,我想在它旁边看到另一个“a”,依此类推:

但是当我按'a'时什么也没有发生,我可以写其他字母并且副本仅在我按时出现Enter

我怎样才能做到这一点?

我正在使用cc -o example example.cUbuntu 下的命令进行编译。

0 投票
3 回答
1967 浏览

c - 如何让程序使用 getchar 运行?

我是一个总 C n00b 试图自学 C 关闭 K&R。我的问题有点令人尴尬。好的,这里是:我无法让程序使用 getchar 来提供我期望的那种输出。如果你碰巧手头有 K&R,我会坚持练习 1.13。问题是,“编写一个程序来打印其输入中单词长度的直方图。”由于我遇到的这个问题,我什至无法处理水平版本。

我在 XP 上使用 Dev-C++(mingW 编译器)并在命令行下运行程序。我的问题是,当我尝试运行我的程序时,它会等待我输入要扫描的字符,但是当我完成输入并按 Enter 时,它什么也没。我希望它能够按照我的预期继续打印直方图。实际上,它甚至似乎都没有计算字长,因为正如您在代码中看到的那样,当我尝试打印 ctr 数组中的内容以查看它是否包含任何内容时,什么都不会打印。

我太n00b了,我不知道是我的代码还是命令行有问题。但我怀疑这是系统的问题,因为当我尝试编译和运行模型程序时,也会发生同样的事情。输入输入,按 Enter,没有任何反应。如果我 Ctrl-C,有时它会吐出一两个星号,看起来与模型输出完全不同。其他时候,它什么也不做(只是回到提示符)。

这是我的练习代码。我花了一整天的时间在这上面,并质疑我继续编程的能力。如果有人能把我从这个洞里救出来,我真的非常感激!

另外,我对上面提到的模型程序还有另一个问题,但我认为我应该将其发布在它自己的问题中。谢谢大家:)

0 投票
4 回答
5130 浏览

c - C - 循环中的getchar()?

如何在循环中使用 getchar()?我现在有...

但它不起作用......如果n_players是3,它只在最后执行getchar 2次......

getchar 跳过第一个循环

0 投票
4 回答
4650 浏览

c - getchar() 和 putchar()

在示例中:

我不太明白。putchar() 会将字符输出,但为什么在 EOF 之后它会输出所有字符,它在哪里记住所有这些字符?谢谢。

0 投票
2 回答
1709 浏览

c - getchar() 并计算 C 中的句子和单词

我正在创建一个程序,它遵循某些规则来计算给定文本文件中的单词、音节和句子。

句子是由以 . 结尾的空格分隔的单词的集合。或者 !或者 ?不过,这也是一句话:

我使用这个程序的方法是使用 getchar() 一次扫描一个字符的文本文件。我被禁止使用内存中的整个文本文件,它一次必须是一个字符或单词。

这是我的困境:使用 getchar() 我可以找出当前字符是什么。我只是在循环中继续使用 getchar() 直到找到 EOF 字符。但是,如果句子末尾有多个句号,它仍然是一个句子。这意味着我需要知道我正在分析的那个之前的最后一个字符是什么,以及它之后的那个。根据我的想法,这将意味着另一个 getchar() 调用,但是当我去扫描下一个字符时会产生问题(它现在跳过了一个字符)。

有没有人建议我如何确定上述句子确实是一个句子?

谢谢,如果您需要澄清或其他任何事情,请告诉我。

0 投票
1 回答
1344 浏览

c - 如何将我的代码转换为使用 getchar() putchar() 而不是使用 scanf() 和 printf() 进行 I/O?

我需要使用 getchar(), putchar() 进行 I/O。我的程序工作得很好,但我不能像在 CodeWarrior 中那样使用它来用于嵌入式系统。我还需要摆脱 malloc() 并只使用堆栈进行弹出/推送。strtol如果我不再使用scanf,我还能使用吗?

这就是我到目前为止的 int 模式: