首页 > 解决方案 > 使用whileloop时如何将光标移动到新行?

问题描述

这是计算字符的代码。

#include <stdio.h>
main()
{
    long nc = 0;
    while(getchar() != EOF){
        ++nc;
        printf("%d\n", nc);
    }
}

输出看起来像这样。

ab
1
2
3
cd
4
5
6
ef
7
8
9

我希望输出看起来像这样......即在每次完成后添加换行符。

ab
1
2
3

cd
4
5
6

ef
7
8
9

怎么做 ??

标签: cwhile-loopnewlinegetchar

解决方案


将输入字符分配给变量。然后你可以测试它是否是换行符并打印一个空行。

#include <stdio.h>
main()
{
    long nc = 0;
    int c;
    while((c = getchar()) != EOF){
        ++nc;
        printf("%d\n", nc);
        if (c == '\n') {
            printf("\n");
        }
    }
}

推荐阅读