gpt4 book ai didi

c - Turbo C 问题

转载 作者:太空宇宙 更新时间:2023-11-04 06:42:20 25 4
gpt4 key购买 nike

您好,我正在使用 Turbo C...我只是有一些疑问,我在一本书中找到了 TC 的代码,但我对给出的说明不满意。这是代码:

main()
{
int count = -1; /* why it was initialized as -1? */
char ch;

printf("Type in a phrase:\n");
ch = 'a'; /* why it was initialized as 'a'? */
while (ch != '\r') /* perform while ch is not equal to return */
{
ch = getche();
count++; /* increment the count */
}

printf("\nCharacter count is %d", count); /* prints the value of count */

}

提前致谢!

最佳答案

假设您的用户输入“abc”并按下回车键,那么输入缓冲区包含“a”、“b”、“c”、“/r”(最后一个字符代表回车)。缓冲区中有 4 个字符,但您的用户实际上只输入了 3 个(返回了一个),因此您需要从计数中减去一个。或者,也可以从 -1 而不是 0 开始计数。

您可以这样想 - 这要经过多少次循环?

  • 计数从 -1 开始。
  • 第一次:从字符串中读取“a”。再绕一圈,因为它不是“/r”。计数现在为 0。
  • 第二次:从字符串中读取'b'。再绕一圈,因为它不是“/r”。 count 现在是 1。
  • 第三次:从字符串中读取“c”。再绕一圈,因为它不是“/r”。现在计数为 2。
  • 第四次:从字符串中读取'/r',然后停止。现在计数为 3。

关于你的第二点,ch 被初始化成什么并不重要,只要它不是'\r'。这意味着您将至少进入循环一次,并读入字符。

关于c - Turbo C 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6000757/

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