gpt4 book ai didi

c - Kernighan & Ritchie 代码示例混淆

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

在此代码示例中提到第二个“c = getchar()”是否有任何原因?

#include <stdio.h>
/* copy input to output; 1st version */

int main(void) {

int c;

c = getchar();
while (c != EOF) {
putchar(c);
c = getchar(); // <-- I mean this one.
}
return 0;
}

最佳答案

c = getchar();                    //read for the first time before entering while loop
while (c != EOF) {
putchar(c);
c = getchar(); // read the next input and go back to condition checking
}
return 0;
  1. 首先 getchar() 读取第一次输入的字符。
  2. second getchar() 继续读取下一个输入,直到 EOF

换句话说,while (c != EOF) 的目的是不断检查c 是否为EOF .如果 c 没有改变,那么 while() 循环就没有意义了,不是吗?第二个getch()负责在每次迭代中更改c的值。

关于c - Kernighan & Ritchie 代码示例混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27222853/

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