法一:可以用for循环scanf一个字符一个字符的读入和输出
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char input[100] = "\0";
int i = 0;
int n = 1; //行数
for( i; i<100000; i++)
{
scanf("%c", &input[i]);
if( input[i] == NULL)
break;
}
printf("第 %d 行:",n);
for( int j=0 ; j< i; j++)
{
printf("%c", input[j]);
if( input[j] == '\n' && input[j+1] != NULL)
{
n+=1;
printf("第 %d 行:",n);
}
}
}
法二: