gpt4 book ai didi

c - 我不明白 K&R 练习 1-12 的代码示例中的区别

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

我试图找出 K&R 练习 1-12 并偶然发现了这个答案:

#include <stdio.h>

#define IN 1
#define OUT 0

main()
{

int c, state;

state = OUT;

while ((c = getchar()) != EOF) {
if (c != ' ' && c != '\n' && c != '\t') {
state = IN;
putchar(c);
}
else
if (state == IN) {
state = OUT;
putchar('\n');
}
}

if (state == IN)
putchar('\n');
}

目的是什么

 if (state == IN)
putchar('\n');

如果我将其从代码中删除,它仍然运行完全相同。有人可以向我解释一下将额外的 if 语句放入代码中的目的吗。

还有没有更简单的方法来编写这段代码,而不用在书籍章节之前使用东西?

最佳答案

如果结束状态是 OUT,通常是这样,则没有区别。如果结束状态是 IN(即输入没有尾随空格,例如换行符),这将以换行符终止输出的最后一行。

关于c - 我不明白 K&R 练习 1-12 的代码示例中的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28457573/

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