回 帖 发 新 帖 刷新版面

主题:[讨论]帮我解释下一条语句的意思

#include <stdio.h>

int main(void)
{
        int a;

        while (scanf("%d", &a) != 1) {
                printf("Input errror,try again:");
                for (int ch; (ch = getchar())!='\n' && ch != EOF;)
                        continue;
        }
        printf("%d\n", a);
        return 0;
}
帮我解释下这条语句:for (int ch; (ch = getchar())!='\n' && ch != EOF;)      谢谢了`````

回复列表 (共4个回复)

沙发

这段代码能运行的前提是你的编译器支持C99或者支持C++、、
对于这句,int ch;/*-------肯定是定义撒,不过作用域仅存在于for循环中-------*/
第二句(ch = getchar() != '\n' && ch != EOF ,宏EOF值为 -1,当getchar()等待输入输入错误时返回给ch的、、这也也此循环中的控制条件、
为什么将ch定义成int,lz可以想想..

板凳


为什么编译器要支持C++呢?

3 楼

[quote]
为什么编译器要支持C++呢?[/quote]
for(int i;;)这么定义,略知c++里可行、

4 楼


恩,运行了一下,看到确实是这样的错误!谢谢了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册