如何打印出换行ASCII?

时间:2018-07-25 07:40:53

标签: c ascii

尝试使用以下代码输出等效的十进制\n(换行符)。执行后,我按Enter键,然后按 Ctrl + Z ,但屏幕上没有任何内容。我希望能印出10张。我想念什么?

#include <stdio.h>
int main()
{
    char ch;

    while ((ch = getchar() != EOF))
    {
        if (ch == '\n')
        {
            printf("\\n=%d\n", ch);
        }
    }
}

1 个答案:

答案 0 :(得分:5)

while ((ch = getchar() != EOF))

这会将值getchar() != EOF分配给ch。您可能打算写:

while ((ch = getchar()) != EOF)

P.S。 ch的类型应为int,因为EOF是一个负值,不需要char才能表示(char可能是{{ 1}}),因此在某些系统上,如果unsigned(错误地)是ch(因此在这样的系统上会有无限循环),您可能永远不会看到此条件为false。