C:换行检查后在前一行打印

时间:2018-10-26 21:21:22

标签: c

我是C语言的初学者,我想知道是否有一种方法可以将我的字符计数与putchar()函数打印在同一行上而无需换行。

#include <stdio.h>

int main(void) { 
    int c, i = 0;
    while ((c = getchar()) != EOF) {
        i++;
        if(putchar(c) == '\n'){
            printf(":%d\n", i - 1);
            i = 0;
        }
    }
    return 0;
}

例如,如果运行此命令,我将得到:

输入

This is the first line.

输出

This is the first line.
:23

有没有一种方法可以使输出看起来像这样?

This is the first line.:23

1 个答案:

答案 0 :(得分:2)

简单:由于putchar会在被调用的那一刻输出,因此请不要输出

if (c == '\n') {
    // omit newline here so that no empty lines are printed
    printf(":%d", i - 1);
    i = 0;
}

putchar(c);