getchar()in while循环问题

时间:2011-04-20 04:22:14

标签: c loops getchar

我是一名为学校编写C程序的新手,其中输入被重定向到文件。我只使用getchar()来检索信息。我正在使用Windows Visual 2008,我无法弄清楚为什么我的代码不会退出循环。谁能帮我吗?感谢。

while (rec != 'EOF')
{
    while (rec != '\n')
    { 
        variable=getchar;
        printf ("this is variable %c");
    }
}

3 个答案:

答案 0 :(得分:3)

while (rec != EOF)
{
     rec=getchar();
     if((rec != '\n') && (rec != EOF)){     
          printf ("this is variable %c\n",rec);
     }
}

答案 1 :(得分:0)

int c = 0;
while (c != EOF) {
    c = getchar();

    if (c == '\n')
        break;

    printf("c:%c\n", c);
}

答案 2 :(得分:0)

答案取决于真正需要的是什么。如果要打印除新行之外的每个字符,您需要以下内容:

int c = getchar(); // Note c is defined as an int otherwise the loop condition is broken
while (c != EOF)
{
    if (c != `\n`)
    {
        printf("c:%c\n", c);
    }
    c = getchar();
}

如果你只想要第一行的字符:

int c = getchar();
while (c != EOF && c != `\n`)
{
    printf("c:%c\n", c);
    c = getchar();
}