编程练习:
1.
编写一个程序,从标准输入读取几行输入。
每行输入都要打印到标准输出上,前面要加上行号。
在编写这个程序时要试图让程序能够处理的输入行的长度没有限制。
分析: 通过从输入中逐字符进行读取而不是逐行进行读取,可以避免行长度限制
程序如下:
//从标准输入复制到标准输出,并对输出行标号
#include<stdio.h>
#include<stdlib.h>
int main()
{
int ch; //一行字符
int line; //行号
int at_beginning; //判断是否为句首
line = 0; //行号赋初值
at_beginning = 1; //为判断句首变量赋初值
//读取字符并逐个处理它们
while ((ch = getchar()) != EOF){
//getchar函数将从标准输入读取一个字符返回它的值并赋给变量ch再与EOF进行比较
//若处在一行的起始位置,打印行号
if (at_beginning == 1) {
at_beginning = 0; //句首标志变量赋零
line += 1; //行号加一
printf("%d", line);
}
//打印字符,并对行尾进行检查
putchar(ch);
if (ch == '\n')
at_beginning = 1;
}
return EXIT_SUCCESS;
}
运行结果:

注:输入字符的时候有逐行增加空格~

最低0.47元/天 解锁文章
1377

被折叠的 条评论
为什么被折叠?



