gpt4 book ai didi

c - getc 和 getwc : How exactly do they read stdin?

转载 作者:行者123 更新时间:2023-12-01 12:01:15 25 4
gpt4 key购买 nike

我不确定这是否是一个愚蠢的问题,但我想我很快就会知道。

我无法准确理解 getcgetwc 的工作原理。不是我不能使用它们,而是我不知道它们到底做了什么。 intgetc 如果我 `printf("%c") 它们返回大多数字符,包括像 € 甚至 £ 这样的多字节。

我的问题是:这些函数究竟是如何工作的,它们如何准确地读取标准输入?非常感谢对文档的解释和很好的指导。

编辑:请阅读我在 William 的回答中留下的评论。它有助于阐明我所追求的详细程度。

最佳答案

如果您使用的是 8 位字符的系统(即 UCHAR_MAX == 255),则 getc() 将返回一个 8 位字符。它返回 int 的原因是 EOF 值可以与任何可能的字符值区分开来。这几乎是您今天可能遇到的任何系统。

fgetc() 显然适用于多字节字符的原因是因为构成多字节字符的字节被单独读入,单独写出,然后由您的控制台解释为多字节字符。如果您将 printf 更改为:

printf("%c ", somechar);

(也就是说,在每个字符后放置一个空格)然后您应该看到多字节字符被分解成它们的构成字节,这可能看起来很奇怪)。

关于c - getc 和 getwc : How exactly do they read stdin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1186123/

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