| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1264 人关注过本帖
标题:文件的输入和输出
取消只看楼主 加入收藏
wly2014
Rank: 2
等 级:论坛游民
帖 子:29
专家分:19
注 册:2014-2-25
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:3 
文件的输入和输出
#include <stdio.h>
#include <stdlib.h>
struct     Records{
    char driver[10];
    int car;

};

int main(int argc, char *argv[])
{
    int i;
    struct     Records *file[10];
    FILE *fp1,*fp2;
    if((fp1=fopen("f:\\t.txt","r"))==NULL){
        printf("Do not find!\n");
        exit(1);
    }
    if((fp2=fopen("f:\\t1.txt","w"))==NULL){
        printf("Do not write!\n");
        exit(2);
    }
    for(i=0;i<10;i++){
        fscanf(fp1,"%s%d",file[i].driver,file[i].car);
    }
    for(i=0;i<10;i++){
        fprintf(fp2,"%s %d\n",*(file[i].driver),*(file[i].car));
    }
    fclose(fp1);
    fclose(fp2);
    return 0;
}

这是我的代码,我想在一个文件中读入数据,然后再输出到另一个文件中,要求是:要读入的文件的每一行信息是一个整体(一个结构体中的全部信息),但在编译错误,我不太懂,很可能是指针使用错误,望大神们赐教;
搜索更多相关主题的帖子: include write file 
2014-04-18 23:55
wly2014
Rank: 2
等 级:论坛游民
帖 子:29
专家分:19
注 册:2014-2-25
收藏
得分:0 
5楼的代码好像不太合乎要求,假如t.txt文件中只有3组数据,最终t1中却是10组,而后8组相同。我把代码中的t变为了结构体数组,为什么fprinrf函数输出的时候,除了前三组数据,后面还有乱七八糟的东西!?
2014-04-19 12:05
wly2014
Rank: 2
等 级:论坛游民
帖 子:29
专家分:19
注 册:2014-2-25
收藏
得分:0 
我现在有突然觉得使用行指针比较方便。但不太懂怎么用
2014-04-19 15:50
wly2014
Rank: 2
等 级:论坛游民
帖 子:29
专家分:19
注 册:2014-2-25
收藏
得分:0 
十分感谢大家的赐教 ,我已经成功完成了课设,但我又换了一种方法,以下是代码,大家看看是不是可以更精简,或有没有问题bug:
以下只是部分代码,希望大家可以大体看明白什么意思:
int AddfromText(struct Records records[],int m,char filename[]){
    int i,j;
    FILE *fp1;
 
    if((fp1=fopen(filename,"r+"))==NULL){
        printf("Can not write !\n");
        exit(2);
    }
    for(i=0;!feof(fp1);i++){                    //feof()函数判断文件是否结尾
        fscanf(fp1,"%s%d%s%d%d%d%d",records[m+i].driver,&records[m+i].car,records[m+i].driver,&records[m+i].car,records[m+i].police,&records[m+i].num,&records[m+i].year,&records[m+i].month,&records[m+i].date);
          //结构体的变量相应的增多了
    }
    for(j=0;j<i-1;j++){
        Insert(records,m,records[m+j]);  //已经定义了的有序插入函数
    }
    for(j=0;j<m+i-1;j++){
        printf("%s\t%d\t%s\t%d\t%d\t%d\%d\n",records[j].driver, records[j].car,records[j].driver,records[j].car,records[j].police,records[j].num,records[j].year,records[j].month,records[j].date);
    }
    fclose(fp1);
    return (m+i-1);
   
}
void WritetoText(struct Records records[],int m,char filename[]){
    FILE *fp2;
    int i=0;

    if((fp2=fopen(filename,"a"))==NULL){
        printf("Can not write !\n");
        exit(2);
    }
    for(i=0;i<m;i++){
         fprintf(fp2,"\n%s\t%d\t%s\t%d\t%d\t%d\%d",records[i].driver,records[i].car,records[i].driver,records[i].car,records[i].police,records[i].num,records[i].year,records[i].month,records[i].date);
         fprintf(fp2,"\n");
    }
    fclose(fp2);
}
2014-04-19 22:34
快速回复:文件的输入和输出
数据加载中...
 
   



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

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