详细问题描述:编写一个程序,一行行地读取输入行,直到到达文件尾。算出每行输入行的长度,然后把最长的行打印出来。假定所有的输入行均不超过1000个字符。
首先,一行行地读取输入行可以使用gets函数。gets函数从标准输入流中读取字符串,直到读到换行符或者EOF时停止,并将读取结果存放在buffer指针所指向的字符数组中。
接下来,要考虑如何保存最长行并把它输出的问题。这里可以先算出每一行的长度,如果长度最长,就将该字符串拷贝也就是保存起来,以便输出:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 1000
int main()
{
char s[MAX]; //保存最长行的内容
char str[MAX]; //保存读取行的内容
int length1 = -1;
int length2 = -1;
while(gets(str) != NULL)
{
length1 = strlen(str);
//计算每一行的长度
if(length1 > length2)
{
strcpy(s, str);
//拷贝最长行的内容
length2 = length1;
//保存最长行的长度
}
}
//文件内容用Ctrl+Z表示结束
if(length2 > 0)
{
puts(s);
}
system("pause");
return 0;
}