排序好后写入文件

  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4
  5 struct person{
  6         char *number;
  7         char *name;
  8         int score;
  9 };
 10
 11 int main()
 12 {
 13         struct person arr[5];
 14         FILE *fp = fopen("src", "r");
 15         FILE *fp1 = fopen("dest", "a+");
 16         if(NULL == fp)
 17         {
 18                 perror("fopen");
 19                 return 1;
 20         }
 21         char *line = NULL;
 22         int len = 0, i = 0, j = 0;
 23         char pn[5][50] = {0};
 24
 25         while ((getline(&line, &len, fp)) != -1)
 26         {
 27                 j = 0;
 28                 while(*line != ‘\n‘){
 29                                 *(*(pn+i)+j) = *line++;
 30                                 j++;
 31                 }
 32                 i++;
 33         }
 34
 35         char *str;
 36         int m = i;
 37         char *brr[3];
 38         char *tmp;
 39         for(i=0; i<m; i++)
 40         {
 41                 tmp = *(pn+i);
 42                 for(j=0; j<3; j++){
 43                         str = strstr(tmp, "\t");
 44                         *(brr+j) = strtok(tmp, "\t");
 45                         tmp = str + 1;
 46                 }
 47                 arr[i].number = *(brr+0);
 48                 arr[i].name = *(brr+1);
 49                 arr[i].score = atoi(*(brr+2));
 50                 printf("%s %s %d\n", arr[i].number, arr[i].name, arr[i].score);
 51         }
 52
 53         struct person ttmp;
 54         for(i=0; i<m; i++)
 55         {
 56                 for(j=i; j<m; j++)
 57                 {
 58                         if(arr[i].score < arr[j].score)
 59                         {
 60                                 ttmp = arr[i];
 61                                 arr[i] = arr[j];
 62                                 arr[j] = ttmp;
 63                         }
 64                 }
 65         }
 66
 67         char show[20];
 68         for(i=0;i<m;i++){
 69                 fputs(arr[i].number,fp1);       fputs("\t",fp1);
 70                 fputs(arr[i].name,fp1);         fputs("\t",fp1);
 71                 sprintf(show,"%d",arr[i].score);
 72                 fputs(show,fp1);                fputs("\n",fp1);
 73         }
 74
 75         fclose(fp);
 76         fclose(fp1);
 77 }
时间: 2024-10-26 16:48:43

排序好后写入文件的相关文章

java基于NIO的分散读取文件,然后统一聚合后写入文件

分散读取:对于一个文件,可以分散的读取数据,可以快速的读取,好比多个线程在分段同时读取: 聚合写入:为了提高效率,一般读取到的数据都是分散的,要快速写入,就需要把分散的数据聚集在一起,然后一块写入到文件: 具体代码如下: //首先创建一个随机访问文件 RandomAccessFile raf= new RandomAccessFile("test.txt", "rw"); //根据随机获取通道 FileChannel channel = raf.getChannel

Python pickle序列化后写入文件,并实现曾加内容

pickle序列化 # _*_coding:utf-8_*_ import pickle import os list_ec = [] while True: if os.path.isfile("course_list"): # 判断文件夹是否存在 with open("course_list", "rb") as f: list_aa = pickle.load(f) f.close() # print(list_aa) # 可以打开,每次读

已知s.txt文件中有一个这样的字符串 请编写程序读取数据内容,把数据排序后写入 ss.txt文件

package cn.idcast5; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; /* * 需求:已知s.txt文件中有一个这样

IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中

需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数据存在一个字符串中 C:把字符串转换成字符串数组 D:对字符串数组进行排序 E:数组转换成字符串 F:把字符串写入文件中 1 public static void main(String[] args) throws IOException { 2 // 读取文件中的数据 缓冲字符输入流 3 Buf

安卓 SD卡写入文件后不能立即显示被写入的文件解决方法

每次通过输出流往SD卡写入文件,连接上电脑,用MTP的方式模拟一个移动磁盘,打开磁盘却没有这样一个文件,而通过adb的方式查看就有,造成这个现象的原因是,每次写入之后,MTP的数据库并没有更新,因为更新一次MTP数据库需要的带价比较大,所以只有在重启,挂载和用户手动发送Intent出发,故存入文件后需要手动发送Intent广播,出发一下MTP数据库的更新. /** * 出发扫描 mtp下的文件,在保存文件到 sd卡下后,不能显示,故这里触发一下扫描机制,让手机连上电脑后,就可以读出文件了 * @

对文件内容去重后写入另一文件

对文件内容去重后写入另一文件: vi a1.py #!/usr/bin/python list = []f = open('/root/ming.txt','r')for str1 in f.readlines():if not str1 in list:list.append(str1)f.close()for b in list:f2 = open('/root/ming2.txt','a')f2.write(b)f2.close() :wq python a1.py 原文地址:http:/

Java以缓冲字符流向文件写入内容(如果文件存在则删除,否则先创建后写入)

功能:Java以缓冲字符流向文件写入内容(如果文件存在则删除,否则先创建后写入) public void Save_local(XinJian xinJian,String files) throws Exception//xieru xinjian de xiangxi xingxi { File file=new File("D:\\javaxiangmu\\beiJinXinJian\\WebContent\\outfile"+File.separator+files); //要

运用BufferedWriter把数据写入文件

public class WriteReadFiles { private static Logger log = LoggerFactory.getLogger(WriteReadFiles.class); public boolean writeFile(String content) { String filename = "E:/java_src/MVCDemo3/MVCDemo3/accounts.txt"; try { File f = new File(filename)

php学习笔记--高级教程--读取文件、创建文件、写入文件

打开文件:fopen:fopen(filename,mode);//fopen("test.txt","r"): 打开模式:r  仅仅读方式打开,将文件指针指向文件头 r+  读写方式打开,将文件指针指向文件头 w  写入方式,指向文件头,假设不存在则尝试创建 w+ 读写方式,指向文件头,假设不存在则尝试创建 a  写入方式打开,指向文件末尾,假设不存在则尝试创建 a+ 读写方式打开,指向文件末尾,假设不存在则尝试创建 读取文件:fread:fread(); rea