gpt4 book ai didi

在 Mac OS X 上计算 C 中的字符数

转载 作者:太空狗 更新时间:2023-10-29 15:53:29 25 4
gpt4 key购买 nike

我正在运行来自 Kernighan 和 Ritchie 的 The C Programming Language 的示例。

#include <stdio.h>

main() {
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}

我在 Mac OS X 上,所以我编译它,运行它,输入“12345”,按回车换行(我相信换行是第六个字符?)然后按 ctrl-D 发送 EOF。

它打印出“6D”。

为什么是“D”?

我如何编写一个程序来只计算“12345”中的 5 个字符而不是换行符?

我应该在最后减去一个吗?

如何让它停止打印“D”?

最佳答案

当您键入时,终端实际上​​回显您的 control-D(并将其打印为 ^D),但随后您的程序会覆盖该行带有数字和换行符。因此,您的一位数会覆盖 ^,但 D 会保留在那里。

如果输入超过 10 个字符,或者通过在格式字符串末尾添加空格来更改代码 ("%ld\n"),则您的程序将覆盖 ^D(尽管它仍然会被您的终端回显)

关于在 Mac OS X 上计算 C 中的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com