来源:《C和指针》 第一章1.8.2
题目:编写一个程序,从标准输入中读取几行输入,每行输入都要打印到标准输出上,前面要加上行号。在编写这个程序时要是图让程序能够处理的输入行的长度没有限制。
要点:输入行的长度限制问题
通过从输入中逐字符进行读取而不是逐行进行读取,可以避免长度限制。
#include<stdio.h> #include<stdlib.h> int main() { int ch; int line; int at_beginning; line = 0; at_beginning = 1; //逐个读取字符。 while ((ch = getchar()) != EOF){ //若处在行的起始位置,打印行号。 if (at_beginning == 1) { at_beginning = 0; line += 1; printf("%d", line); } //打印字符,并对行尾进行检查。 putchar(ch); if (ch == '\n'){ at_beginning = 1; } } return EXIT_FAILURE; }*****************************************
EOF:End Of File在操作系统中标识资料源无更多资料可读取,在C语言的标准函数库中表示文件结束符。