使用getchar和putchar在c中打印行号

时间:2018-05-08 14:11:33

标签: c numbers counter getchar putchar

有没有办法在C中打印出行号,只使用from types import FunctionType def f(ff: FunctionType): # do something putchar且没有数组?

输出应该如下所示。 例如输入getchar

mink

等等

行号应从01: mink 02: jaguar 转到01

这是我的开始方法

50

2 个答案:

答案 0 :(得分:0)

假设行号仅为2位,请计算并输出这些数字和:前缀。为避免重复文件开头的代码并避免在文件结束后打印不存在的行的行号,请在每行的第一个字符之前打印行号,即之后 em>换行符,如果有另一个角色。将lastc初始化为'\n'可确保在文件的第一行之前打印行号(如果至少有一行)。

这是一个简单的实现:

#include <stdio.h>

int main() {
    int c, lastc = '\n';
    int counter = 1;

    while ((c = getchar()) != EOF) {
        if (lastc == '\n') {
            putchar('0' + counter / 10 % 10); // tenths digit
            putchar('0' + counter % 10);      // units digit
            putchar(':');
            putchar(' ');
            counter++;
        }
        putchar(c);
        lastc = c;
    }
    return 0;
}

答案 1 :(得分:0)

你需要进行除法和修改10才能得到10位数和1位数。

#include <stdio.h>
int main()
{
    int c;
    int counter=1;
    putchar('0');
    putchar('1');
    putchar(':');
    putchar(' ');
    while((c=getchar())!=EOF){
        putchar(c);
        if ( c == '\n' ) {
            ++counter;
            putchar(counter / 10 + '0');
            putchar(counter % 10 + '0');
            putchar(':');
            putchar(' ');

        }
    }
    return 0;
}