| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 263 人关注过本帖
标题:接着写文件的问题
只看楼主 加入收藏
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:4 
接着写文件的问题
编写了个程序:
从b.txt文件提取数据,排序后在写入原文件
我发现总是在同程序中先关了b.txt,在打开b.txt,才能接着写入内容。
是怎么回事.
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
     struct student
     {
        int num;
        char name[20];
        float score[3];
        float ever;
         
     }b[6],a[5];
int main()
{     
     FILE *fp,*fp1;
     struct student y;
   
      int i,j,k;
      float sum=0;
      printf("shu ru xu shen chengji:\n");
      scanf("%d%s%f%f%f",&b[5].num ,&b[5].name ,&b[5].score[0],&b[5].score[1],&b[5].score[2]);
      b[5].ever=(b[5].score[0]+b[5].score[5]+b[5].score[2])/3;
     if((fp=fopen("E:\\c语言\\b.txt","r+"))==NULL)
      {
         printf("da kai wen jian shi bai:");
         exit(0);     
      }
     for(i=0;i<5;i++)
      fscanf(fp,"%d%s%f%f%f%f",&b[i].num ,&b[i].name ,&b[i].score[0],&b[i].score[1],&b[i].score[2],&b[i].ever);
     
   
     for (i=0;i<6;i++)
         for(j=i+1;j<6;j++)
             if(b[i].ever<b[j].ever)
             {y=b[i];
             b[i]=b[j];
             b[j]=y;}
         
    if((fp=fopen("E:\\c语言\\b.txt","a+"))==NULL)    //      这里又打开了文件一次,没有这个就不能接着写入b.txt(原来内容不变)
       {  printf("da kai wen jian shi bai:");
         exit(0);     
      }
 for(i=0;i<6;i++)
     
      { printf("%5d%10s%8.2f%8.2f%8.2f%8.2f\n",b[i].num ,b[i].name ,b[i].score[0],b[i].score[1],b[i].score[2],b[i].ever );
         
          fprintf(fp,"%5d%10s%8.2f%8.2f%8.2f%8.2f\n",b[i].num ,b[i].name ,b[i].score[0],b[i].score[1],b[i].score[2],b[i].ever);
      }
      fclose(fp);
      return 0;
}
b.txt内容是
 102      ekjl   85.00   96.00   74.00   85.00
  105       klj   65.00   98.00   32.00   65.00
  101        li   89.00   56.00   23.00   56.00
  104    kdfsjl   87.00   54.00   21.00   54.00
  103       kjg   78.00   45.00   12.00   45.00
要插入的内容是 106 dlsk 98 78 56
那位高手帮忙看看,谢谢
搜索更多相关主题的帖子: include 
2013-01-20 11:56
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
收藏
得分:0 
文件位置标记问题吗
2013-01-20 12:01
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:10 
fp=fopen("E:\\c语言\\b.txt","r+")
fp=fopen("E:\\c语言\\b.txt","a+")
能说出r+和a+是什么意思吗?如果不能你是不是应该先去弄清楚fopen入参的含义呢?

总有那身价贱的人给作业贴回复完整的代码
2013-01-20 12:13
Zhijian01
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2012-12-29
收藏
得分:0 
a+就是我要的,向文件末尾添加文件的,其他的我就不知道了
2013-01-20 14:58
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:10 
r+是读写文件的意思,是可以写入的

I have not failed completely
2013-01-22 17:18
快速回复:接着写文件的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017844 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved