问题标签 [putchar]
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.
c - `putchar`的以下两种用法有什么区别?
我正在编写一些代码,但我在程序的某个部分得到了意外的输出,这反过来又破坏了整个系统。
代码可以简化并缩短为:
根据上面的代码,我正在尝试打印用户选择的字符/整数序列。数字应该保持不变,而如果用户输入字母A
,则应该打印2
。
预期产出
实际输出
一旦遇到这个问题,我决定调整一些东西并提出以下完美运行的代码。它使用相同的方法,但产生不同的输出:
预期产出
实际输出
我无法理解为什么我无法将第一个代码中输入的字符的 ASCII 值转换为单个整数。造成这种输出差异的原因是什么?我只是将控制表达式的类型从if-statement
更改为 a switch-statement
(或者我认为是这样)。如何更改第一个代码以提供与第二个代码相同的输出?
c - getchar() 是否从输入中获取字符?
代码:
当我输入abc
我猜输出是
aabbcc
,但输出是
为什么 ?
c - 由于参数差异,定义宏以更改打印函数错误
我正在尝试将统一测试框架与 NRF51822 板一起使用,但为了查看统一的输出,我需要重新路由它/管道,以便它在我的计算机上可见。我正在使用 SEGGER RTT 在我的项目中打印,理想情况下 id 将其用于 unity.c 输出。
根据统一
默认情况下,Unity
stdout
在运行时打印其结果。这在您使用本机编译器进行测试的大多数情况下都可以正常工作。只要它们已stdout
路由回命令行,它也适用于某些模拟器。但是,有时模拟器将缺乏对转储结果的支持,或者您出于其他原因希望将结果路由到其他地方。在这些情况下,您应该定义UNITY_OUTPUT_CHAR
宏。该宏一次接受一个字符(作为,因为这是最常用int
的标准 C 函数的参数类型)。putchar
你可以用你喜欢的任何函数调用来替换它。想要的
我试图定义
但是我得到以下信息
我还尝试了在函数中调用 segger 并转换为 char * 的替代方法,如下所示
但不幸的是,当我调用 print_test 时,我没有看到任何输出
我应该如何定义宏以便我可以将输出发送到 segger 或者如果有更合适的替代方案是什么?
c - putchar 和 printf 的行为不符合预期
我正在完成 K&R 中的一些练习。练习 1-6 要求验证表达式getchar() != EOF
是 0 还是 1。我明白为什么会这样,但是我编写的代码证明它没有按预期工作。我写了以下两个片段:
版本 1:
版本 2:
我的问题:
当我输入一个字符并使用版本一按 Enter 时,为什么我在屏幕上看不到 0 或 1?相反,我的光标移动到下一行的第一个位置,否则为空。我虽然
putchar
会发送c
到stdout
.虽然
printf
在第二个版本中使用确实会适当地产生 0 或 1,但它会为每个非 EOF 字符复制 1(我在我输入的每个字符的两个连续行上看到数字 1)。为什么?
非常感谢您的想法。如果有您认为有帮助的参考资料,请发送链接。
澄清:
我知道我正在分配 0 或 1 的 ca 值。这就是我想要做的,也是练习想要的。这也是我周围没有括号的原因c = getchar()
。我的问题更多地涉及理解为什么输出不是我所期望的。很抱歉有任何混淆。
c - 使用 putchar 进行整数提升
“该函数将写入为 unsigned char 的字符转换为错误时的 int 或 EOF ”:请参阅 Putchar。为了练习,我制作了这个程序:
它会导致一个无限循环输出...432432432432432...
。我无法得到这种结果背后的原因。我希望循环一遍又一遍地打印相同的数字。我指的是 putchar('4') 的值,其中字符 '4' 应该提升为 int 52。为什么这种提升的行为不像我预期的那样?
c - 转义 \t 的多字符常量警告
如果我putchar('\\t');
在尝试打印"\t"
而不是实际选项卡时写,我会收到多字符常量警告。另一方面,如果我写,putchar('\\');
我不会收到任何警告。在 ASCII 表中查看,没有字符'\\'
,只有'\'
. 那么为什么没有警告呢?为什么'\\'
一个字符但'\\t'
不止一个?反斜杠只能用于转义后面的一个字符吗?
c - getchar() 和 putchar() 宏是怎样的?
根据我对 C 中宏的理解,它们是预定义的常量,将在整个程序中以其常量值使用,因此我们继续定义它们以避免进一步的复杂性并使代码更具可读性,因此阅读它的人会明白什么应该保持不变,什么不是。
我在这里和那里读过(C 编程一种现代方法,KN King),我们可以将这两个函数定义为宏。
由于我对 C 有点陌生,所以我无法理解如何将这两个定义为宏?
c - C语言getchar()和putchar()
我是一个新的 C 语言学习者,我在下面遇到了一个问题,我试图打印出名字,但它没有打印出来。这是我尝试过的:
输出:
它应该打印出来name = abcd
。
我很感激,谢谢!
c - 这个c文件处理代码有什么问题?
我正在尝试从终端将内容写入文件中。正在创建文件,但内容未写入文件。
c - 请解释这个涉及 getchar 和 putter 的代码
我附上了一段我不完全理解的c代码的图片。我知道getchar
从标准输出返回下一个字符putchar
并将该字符放在标准输出上,但我不完全理解它EOF
是什么以及这段代码到底在做什么。另外,我不明白如何像在 if 语句中那样添加或减去字母。