问题标签 [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 回答
2259 浏览

c - C getchar() 和 putchar()

通过 K&R,我试图了解 C。我想编写一个程序,在屏幕上打印用户的前一行,除非字符是“a”。

是的,程序不多。但它不会按预期工作。我是否需要使用字符“a”的 ASCII 值,因为上面的代码只打印所有字母,无论是否为 a。

0 投票
1 回答
1817 浏览

c - getchar() 从前一个 printf() 中取出最后一个字符?

我正在为深奥的语言 Brainf*ck 编写编译器/解释器(我不太确定 StackOverflow 的亵渎政策,所以我会审查自己,直到有人告诉我我不必这样做),我正在运行进入一个非常神秘的(至少对我而言)错误,其中我的调试输出中的最后一个字符被接受为正在运行的brainf*ck 程序的输入。以下是解释器的源代码:brainf*ck.c,程序的源代码:OR.bf,以及通过 Brainf*ck 可执行文件运行 OR.bf 的输出的部分打印。(对于凌乱的代码,我提前致歉。我在不到一天的时间内将解释器写成了一个有趣的项目。)提前感谢您的帮助!

Brainf * ck.c:

OR.bf:

输出:

上面的输出格式如下: eval: <*instruction ptr> <*data ptr>

(所以似乎是在破坏上面的行,所以只需参考 Brainf*ck.c 中 eval() 的开头。

如您所见,输出的倒数第二行和最后一行表明 getchar() 是(出于某种原因)从倒数第二行的末尾获取换行符,而不是等待用户输入(就像它在 line 1)。

我对为什么在我的程序中出现这个错误而不是如何修复它更感兴趣,因为它让我认为我没有像我想象的那样对 C 中的输入流有很好的处理,但建议修复(当然)是受欢迎的。

0 投票
6 回答
63436 浏览

c - int c = getchar()?

好的,我正在阅读这本书:The C Programming Language - Kernighan 和 Ritchie(第二版),其中一个示例我无法理解事物的工作原理。

该行:for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i) 它说c = getchar(),如何从命令行输入整数=字符?整数是的,但是我输入的字符是如何存储的?

提前致谢

0 投票
3 回答
1275 浏览

c - 关于 getchar() 用法的简单问题?

在这个非常棒的网站中搜索有关 getchar() 函数的所有内容时,我发现了这篇文章:为什么 getchar() 不等我在 scanf() 之后按 Enter 键?

我了解整个程序,并且我了解每次调用它时,getchar 都会从文本流中读取下一个输入字符并将其作为其值返回。也就是说,之后

变量 c 包含输入的下一个字符。字符通常来自键盘。

但问题来了:为什么程序员在程序结束时调用 getchar()?

0 投票
2 回答
9854 浏览

c - 对“while(getchar() != '\n')”感到困惑

我知道getchar() 只是一个函数获取用户输入的行的第一个字符,然后是下一个字符,依此类推如果我们输入getchar()了一行,在代码完成时,它是为了让程序等待用户输入任何并且在显示信息时不关闭控制台。

为什么我们使用这行代码?

而(getchar()!='\n');

我知道它会读取该行的所有字符,直到找到行尾然后循环中断..对.? 但是,为什么这很有用?如果我们不写这行代码怎么办?

0 投票
6 回答
135408 浏览

c - Linux 中的 getch() 和 getche() 等价物是什么?

我无法在 Linux 中找到 conio.h 的等效头文件。

Linux中是否有getch()&功能的选项?getche()

我想制作一个开关盒基本菜单,用户只需按一个键就可以提供他的选项,并且应该向前移动进程。我不想让用户在按下他的选择后按下 ENTER。

0 投票
3 回答
3147 浏览

c - Ctrl-C 被 getchar() 吃掉

很长时间以来,我一直在寻找解决问题的方法,这就是我求助于您的原因:

考虑这段代码:

预期行为:当用户输入 q 然后进入时程序退出。如果CTRL+C被按下,它会被 sigHandler 函数捕获,该函数将标志“done”设置为 1 并退出程序。

观察到的行为:CTRL+C字符被 getchar() 调用吃掉了,sigHandler 函数永远不会执行。当CTRL+C然后按 enter 时,调用 sigHandler 函数并退出程序。

有更多经验和知识的人可以帮助我吗?

感谢您的输入 :)

0 投票
8 回答
1631 浏览

c - 而(getchar()!=多个参数)

如何使用 getchar 作为 while 循环的条件,并在 (c=getchar()) = EOF 或 '\n' 或 '\0' 时终止。

我试过了:

哪个不起作用,如果我输入:天气(+输入)。它没有终止循环。

我怎样才能使这项工作?

启发我

0 投票
1 回答
882 浏览

c - C 用户输入验证 - 只需要一个转换为 int 的字符

我在 C 中接受用户输入时遇到问题。我只想取第一个数字。我从字符中过滤用户输入,但是当我输入 2 位数字(错误的用户输入)时,程序开始表现得很奇怪

它显示:


谁能帮我解决什么问题?

0 投票
4 回答
91 浏览

c - 处理这种输入的方法?

我正在尝试确定一种输入数据时的方式,如下所示:

每次输入名称和整数并检测到换行符时,都会使用该名称和整数完成操作,然后一次又一次,直到“。” 被检测到。

例如,我尝试过getchar()循环和 IF 语句来检测'\n',但似乎都不起作用。有任何想法吗?