吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2566|回复: 1
收起左侧

[C&C++ 转载] C语言文件的读写实例

[复制链接]
crysky7ye 发表于 2019-1-23 14:10
[C] 纯文本查看 复制代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <Windows.h>
/* 读出文件放到数组中,新增数据插入到该数组中;
   重新将数组中的数据写入该文件中
*/
void main(int argc,char * agrv)
{
    FILE *fp;
    char name[20];       //输入变量
    int sum;             //输入变量
    char fName[10][20];  //可存储10个人名
    int fScore[10];      //存储10个分数记录
    char buff1[20];
    char buff2[20];
    int i=0;
    //打开存储文件
    if ((fp=fopen("c:\\scorelist.txt","r"))==NULL)
    {
        printf("Can not open the file");
        getch();
        exit(0);
    } 
    else
    {   
        while (!feof(fp))
        {   
            ZeroMemory(buff1,sizeof(buff1));       //清空内存
            ZeroMemory(buff2,sizeof(buff1));
            fgets(buff1,sizeof(buff1),fp);         //读取名称
            fgets(buff2,sizeof(buff2),fp);         //读取第二行分数
            if (strcmp(buff1,"")==0)
            {
                continue;
            }
            else
            {
                strcpy(fName[i],buff1); 
                printf("%s",fName[i]);                 //输出名称
                fScore[i] = atoi(buff2);                //将字符型转换成int型
                printf("%i\n",fScore[i]);              //打印输出分数值
            }
            i++;
        }
    }
    fclose(fp);
    //打开存储文件,将排好序的数据重新写入文件中
    if ((fp=fopen("c:\\scorelist.txt","w"))==NULL)
    {
        printf("Can not open the file");
        getch();
        exit(0);
    } 
    else
    {   
        printf("Input the new name:\n");
        scanf("%s",name);
        printf("Input the new score:\n");
        scanf("%i",&sum);
        int j =0;
        //获取新增积分排序位置
        while(sum < fScore[j])
        {
             j++;
          
        }
        //移动数据重新对数组排序,从后往前排序
        int m = i;
        while (i>j)
        {
            strcpy(fName[i],fName[i-1]);
            fScore[i] = fScore[i-1];
            i--;
        }
        strcpy(fName[j],name);
        strcat(fName[j],"\n");
        fScore[j] = sum;
        //写入文本文件
        int k=0;
        while(k<=m)
        {
            fputs(fName[k],fp);
            fprintf(fp,"%i\n",fScore[k]);
            k++;
        }
    }    
    fclose(fp);
}

免费评分

参与人数 2吾爱币 +4 热心值 +2 收起 理由
万古剑魂 + 1 + 1 我很赞同!
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

痴情总被无情伤 发表于 2019-1-24 14:00 来自手机
不错,前排留名
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 17:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表