文件文本排序:

数组冒泡:

#include<stdio.h>void swap(int *a,int *b)
{int temp = *a;*a = *b;*b = temp;
}void bubble(int *p,int n)
{int i;int j;for(i = 0; i < n; i++){for(j = 1; j < n - i; j++){if(p[j - 1] > p[j]){swap(&p[j-1],&p[j]);}}}
}int main()
{int arr[10] = {4,6,3,7,8,5,12,67,34,56};bubble(arr,10);int i;for(i = 0; i < 10 ; i++){printf("%d ",arr[i]);}printf("\n");return 0;
}

文件数据排序

#include<stdio.h>
#include<string.h>void swap(int *a,int *b)
{int temp = *a;*a = *b;*b = temp;
}void bubble(int *p,int n)
{int i;int j;for(i = 0; i < n; i++){for(j = 1; j < n - i; j++){if(p[j - 1] > p[j]){swap(&p[j-1],&p[j]);}}}
}int main()
{int array[10] = {0};int i;char buf[100];        int index = 0;FILE* p =fopen("./file.txt","r");if(NULL == p){printf("error\n");}else{while(!feof(p)){memset(buf,0,sizeof(buf));fgets(buf,sizeof(buf),p);array[index] = atoi(buf);index++;}fclose(p);}index--;bubble(array,index);p = fopen("./b.txt","w");printf("index = %d\n",index);for(i = 0; i < index ; i++){memset(buf,0,sizeof(buf));sprintf(buf,"%d\n",array[i]);fputs(buf,p);//printf("%d ",array[i]);
        }fclose(p);printf("i = %d\n",i);return 0;
}

如果文件数据过大,就不能在栈中建立一个数组,考虑使用堆

#include<stdio.h>
#include<string.h>
#include<stdlib.h>void swap(int *a,int *b)
{int temp = *a;*a = *b;*b = temp;
}void bubble(int *p,int n)
{int i;int j;for(i = 0; i < n; i++){for(j = 1; j < n - i; j++){if(p[j - 1] > p[j]){swap(&p[j-1],&p[j]);}}}
}int main()
{int i;char buf[100];        int index = 0;FILE* p =fopen("./file.txt","r");if(NULL == p){printf("error\n");}//else
        {while(!feof(p)){memset(buf,0,sizeof(buf));fgets(buf,sizeof(buf),p);index++;}fclose(p);}int *array = calloc(sizeof(int),index);index = 0;p =fopen("./file.txt","r");if(NULL == p){printf("error\n");}//else
        {while(!feof(p)){memset(buf,0,sizeof(buf));fgets(buf,sizeof(buf),p);array[index] = atoi(buf);index++;}fclose(p);}index--;bubble(array,index);p = fopen("./b.txt","w");printf("index = %d\n",index);for(i = 0; i < index ; i++){memset(buf,0,sizeof(buf));sprintf(buf,"%d\n",array[i]);fputs(buf,p);//printf("%d ",array[i]);
        }fclose(p);printf("i = %d\n",i);return 0;
}

转载于:https://www.cnblogs.com/wanghao-boke/p/11207012.html

文件操作函数(读写)相关推荐

  1. 【C 语言】文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )

    文章目录 一.C 语言中的文件操作函数 二.磁盘与内存缓冲区 三.缓冲区工作机制 一.C 语言中的文件操作函数 读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本 ...

  2. php文件有哪几种,PHP常用的文件操作函数有哪些

    PHP常用的文件操作函数有哪些 本文主要总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来.欢饮阅读参考! 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指 ...

  3. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )

    文章目录 一.追加键值对数据 二.更新键值对数据 三.完整代码示例 一.追加键值对数据 在上一篇博客 [C 语言]文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取 ...

  4. python中对文件、文件夹(文件操作函数)的操作

    python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...

  5. C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...

  6. C语言程序设计 文件操作函数

    文件操作函数 C语言 (FILE fputc fgetc fputs fgets fscanf fprintf) 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别 ...

  7. c语言全文件操作函数,C语言文件操作函数大全

    C语言 文件操作函数大全 C语言文件操作函数 2007-10-17 19:21 13.1C语言文件 1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制 ...

  8. PHP常用的文件操作函数集锦

    以下是个人总结的PHP文件操作函数.当然,这只是部分,还有很多,我没有列出来. 一 .解析路径: 1 获得文件名: basename(); 给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的 ...

  9. C文件操作、读写文件 C++文件读写、文件操作

    转自  飘羽随风 基于C的文件操作  在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之. 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FI ...

  10. 文件操作函数在VFS层的实现

    文件操作函数在VFS层的实现 参考"Understanding Linux kernel"中的"12.6 Implementations of VFS System Ca ...

最新文章

  1. 链接被点击的默认行为——带到另一个窗口
  2. ORACLE用户权限管理笔记整理
  3. matlab using mtimes,同版本matlab、同一.m文件,为何一个顺利执行、另一个出错?
  4. 23种设计模式C++源码与UML实现--中介者模式
  5. UnrealEngine4 PBR Shading Model 概述
  6. 转Windows 2003服务器安全配置终极技巧
  7. iOS及Android 启动页面(即欢迎页面),引导页面,及广告页面的加载
  8. Mybatis-generator的使用
  9. 空间中任一点到超平面的距离公式的推导过程
  10. C#语法基础(一)----键盘读入整数foreach语句
  11. Atitit mybatis prblm n solu v1 u55 目录 1.1. 加载任意文职cfg 1 1.2. 根据dburl获取factory 1 1.3. Load any mapper
  12. 惠新宸:我也曾经是“不适合”编程的人(图灵访谈)
  13. Activiti开发案例之代码生成工作流图片
  14. MSSQL数据库初级到高级的学习资料整理
  15. newwifi2刷潘多拉固件
  16. http接口测试工具
  17. leetcode 376. 摆动序列(三种解法)
  18. 在excell中如何制作动态图
  19. Tcl学习0——Tcl和Tk介绍
  20. android app 三星s8 适配问题 和 meta-data 动态修改

热门文章

  1. sublime text3 使用SVN插件
  2. 数学图形之Boy surface
  3. JSON学习资料整理
  4. 关于使用在webforms里使用routing遇到的问题
  5. 分数怎么化成带分数_人教版五年级下册第4单元带分数及把假分数化成整数或带分数教学视频+知识点...
  6. 假定某一个数据列表是一个班级的计算机课程,若需要利用形参直接访问实参,则应把形参变量说明为()参数。A.指针B.引用C.传值D.常值...
  7. Scude导入MySQL_FM2017_FMF赛季更新和真实修正数据库[更新至9.9,超过89000个更新]
  8. c语言编码风格,讲嵌入式C语言编码风格.ppt
  9. oracle视图查询数据慢,8i查询DBA_FREE_SPACE视图极慢的问题
  10. 《MySQL——Innodb改进LRU算法》