Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我不知道';我不理解K&;的这个代码示例中的差异;R练习1-12_C - Fatal编程技术网

C 我不知道';我不理解K&;的这个代码示例中的差异;R练习1-12

C 我不知道';我不理解K&;的这个代码示例中的差异;R练习1-12,c,C,我正试图找出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; putch

我正试图找出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语句的目的


还有没有更简单的方法来编写此代码,而不必使用书本章节之前的内容

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

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

我明白你的意思。谢谢,我明白你的意思了。非常感谢。
 if (state == IN)
    putchar('\n');