C语言之文件操作03——最长最短行查找和统计

//文件

/*

===============================================================

题目:从文本文件中找出最长和最短的行输出在屏幕上,并统计文件中

共有多少行?

===============================================================

*/

#include<stdio.h>

#include<string.h>

#define N 80

#define HH printf("===================================================\n");

void main()

{

FILE *fp;

char h[N],zc[N],zd[N],wenjian[20];

int n=0,len,maxno,minno;

printf("输入文件完整路径:\n");

HH

scanf("%s",&wenjian);

fp=fopen(wenjian,"r");

if(fp==NULL)

printf("文件打开失败!\n");

else

{

while(!feof(fp))

{

fgets(h,N,fp);

if(n==1)

{

maxno=1;

minno=1;

strcpy(zc,h);

strcpy(zd,h);

}

else

{

if(strlen(zc)<=strlen(h))

{

maxno=n;

strcpy(zc,h);

}

if(strlen(zd)>=strlen(h))

{

minno=n;

strcpy(zd,h);

}

}

n++;

}

fclose(fp);

n--;

HH

printf("说明:文件中共有:%d行!\n",n);HH

printf("第%d行最长,有%d个字符,内容为:\n%s\n",maxno,strlen(zc),zc);HH

printf("第%d行最短,有%d个字符,内容为:\n%s\n",minno,strlen(zd),zd);HH

}

}

/*

===============================================================

评:

如果要以行为单位输出,则要定义一位数组表示行,对应程序中的h[N];

N控制改行的字符数。strlen()测长度,strcpy这里实际上是赋值作用!

主要思路就是:先令最长和最短都为第一行,然后分别与剩下的行比较

并替换,即比最长的长替换为最长,同理比最短的短则替换为最短。直

到文件末尾。之所以n--是因为,最后n+1时发现不存在新的行,故减回

去。

注意:换行符也是一个字符,会被统计到。

===============================================================

*/

版权声明:博主文章可以被非商用转载,但请务必注明出处,因水平有限,难免出错,在此免责。

时间: 2024-08-15 19:25:58

C语言之文件操作03——最长最短行查找和统计的相关文章

C语言之文件操作08——总结

C程序的文件操作共涵盖7个例题,包含格式打印,文件读取,条件查找,矩阵的文件操作,数据格式输入及调用计算等内容. 文件操作使得程序有更强的拓展性,使其可以单独保存数据,这为程序的调试和优化打下了坚实的基础,为我们实现大规模计算提供了可能.至此,相信大家对文件操作也有了比较好的认识,无非是写入.读取.调用. 我们常常会听说C的强大,也是因为她有着文件操作的功能,而文件数据是可以方便重写和维护的. MATLAB数学软件是一款十分强大的工具型软件,它是通过C语言来表达算法的,作为面向过程的编程语言C,

015_C语言中文件操作

 文件:存储在外部介质上的数据集合 ASCII码文件和二进制文件 流式文件和非流式文件 在内存中只有1和0,电脑在显示文件时,按一定编码显示 流式文件:输入输出的数据流的开始和结束仅受程序控制而不受物理符号控制 缓冲文件和非缓冲文件 每一个使用的文件都会在内存中开辟一个缓冲区 文件打开fopen 文件关闭fclose 读到文件末尾时即读到EOF 文件操作所用到的函数fgetc/fputc  fgets/fputs   fscanf/fprintf等一些函数使用时可同过帮助文档得知 文件定位函

【C】C语言中文件操作相关内容

1. 文件和流的关系 C将每个文件简单地作为顺序字节流.每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中.当打开文件时,就建立了和文件的关系. 在开始执行程序的时候,将自动打开3个文件和相关的流:标准输入流.标准输出流和标准错误.流提供了文件和程序的通信通道.打开一个文件将返回指向FILE结构(在stdio.h中定义)的指针,它包含用于处理文件的信息,也就是说,这个结构包含文件描述符.文件描述符是操作系统数组(打开文件列表的索引).每个数组

c语言_文件操作_FILE结构体小解释

参考文档来自:https://www.cnblogs.com/haore147/p/3648395.html 我们通过fopen返回一个文件指针(指向FILE结构体的指针)来进行文件操作. 在vs2013下的代码如下: #include <stdio.h> #pragma warning(disable:4996) int main() { FILE *p = fopen("C:\\test\\win\\a.txt", "r"); char buf[10

C语言4——文件操作

1.文件操作 int main(){ FILE *p=fopen("D:\\temp\\a.txt","w");//用写的方式打开一个文件 //w的意思是如果文件不存在就建立一个,如果文件存在就覆盖 fputs("hello world",p);//向文件中写入一个字符串 fclose(p);//关闭文件 } int main(void){ char s[1024]={0}; FILE *p=fopen("D:\\temp\\a.txt

C#语言-07.文件操作

a. 文件操作:适用于相对简单的数据保存 i. 读写文件的步骤: 1. 创建文件流 2. 创建读写器 3. 读写文件 4. 关闭读写器 5. 关闭文件流 ii. FileStream(文件流),它主要用于读写文件中的数据,创建一个文件流时,需要指定操作文件的路径,文件的打开方式和文件的访问方式 1. 语法:FileStream 文件对象=new FileStream(String FilePath,FileMode); a. FileMode :打开文件的模式 i. 文件读写器 1. Strea

一起talk C栗子吧( 第一百四十回:C语言实例--文件操作:基于文件描述符三)

各位看官们,大家好,上一回中咱们说的是基于文件描述符进行文件操作的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中详细地介绍了文件操作相关的系统调用.不过,没有举具体的例子.我们的主要内容就是举例子,因此,今天我们将通过具体的例子来说明如果使用系统调用来操作文件. 对文件的操作,还是使用我总结的文件操作三步曲比较好: fd = open(file_name,flags_read); //打开文件 fd = open(file_name,fl

C语言之文件操作01——打印1000以内的质数到文件

//文件操作 /* ========================================================== 题目:打印1000以内的质数到D盘"质数.txt"下. ========================================================== */ #include<stdio.h> void main() { FILE *fp; int n,i,k,m=0; fp=fopen("D:\\质数.t

一起talk C栗子吧(第一百四十四回:C语言实例--文件操作大结局)

各位看官们,大家好,上一回中咱们说的是基于文件指针进行文件操作的例子,这一回咱们说的是文件操作大结局.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在前面章回中介绍了文件操作的两种途径:文件描述符和文件指针.今天我们将对这两种文件操作途径进行总结和对比. 我们先看看它们的共同点: 1.口味相同:都喜欢吃文件(都能用来操作文件): 2.生活方式相同:日出而作,日落而息(使用它们时都是按照文件操作三步曲进行:打开,操作,关闭): 3.都不省心:使用时容易引起错误,需要检查使用后的结