| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 476 人关注过本帖
标题:请教大家一个关于文件读取的问题
只看楼主 加入收藏
arhatlohan
Rank: 2
等 级:论坛游民
帖 子:10
专家分:23
注 册:2011-11-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
请教大家一个关于文件读取的问题
我想读一个文件,数据格式是这样的:

baihelunwen11           5283727           baihelunwenwang
百合论文网2           zsdqy5283727           baihelunwenwang
baihe           5283727           baihelunwenwang2
baiheren2009           luoshun           baiheluoshun


我要取出中间那一列,写入文件
我编的程序怎么也过不去。
我的思路:先用fgets按行来读取,放入数组arr1中;然后对数组arr1的每一个元素用sscanf来读取。但是程序过不去,请指教。

我的程序写在这里:

程序代码:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0,j;

    FILE *fp1,*fp2;
    char arr1[800000],arr2[5];
    if(NULL==(fp1=fopen("sourceData.txt","r")))
    {printf("File no1 wrong!\n");}

    if(NULL==(fp2=fopen("destData.txt","w+")))
    {printf("File no2 wrong!\n");}

    while(!feof(fgets(arr1[i],sizeof(arr1),fp1))))
    {
        //按行读入数据
        i++;

    }
    int num=i-1;
    for(j=0;j<num;j++)
    {
        sscanf(arr1,"%s           %s           %s",&arr[1],&arr[2],&arr[3]);
        fprintf(fp2,"%s\n",arr[2]);
    }



    return 0;

}
搜索更多相关主题的帖子: 百合 论文 include 元素 
2011-12-26 10:25
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:20 
程序错误太多,直接重写了一个,你对哪些文件读取函数的理解有误,好好查查MSDN看看哪些函数的用法,这题其实很简单,下面的代码也就是应付这题用的。
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main ()
{
    FILE    *fp1, *fp2;
    char    arr[100];
   

    fp1 = fopen ("sourceData.txt", "r");
    if (NULL == fp1)
    {
        printf ("File sourceData.txt can't be opened.\n");
        return -1;
    }
   

    fp2 = fopen ("destData.txt", "w+");
    if (NULL == fp2)
    {
        printf ("File destData.txt can't be opened.\n");
        return -1;
    }
   

    fgets (arr, 100, fp1);
    fgets (arr, 100, fp1);
    fprintf (fp2, "%s", arr);
    fgets (arr, 100, fp1);
    fprintf (fp2, "%s", arr);
   

    return 0;
}


冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-12-26 11:06
arhatlohan
Rank: 2
等 级:论坛游民
帖 子:10
专家分:23
注 册:2011-11-1
收藏
得分:0 
回复 2楼 waterstar
谢谢,waterstar,我调试完告诉你结果
2011-12-26 12:21
arhatlohan
Rank: 2
等 级:论坛游民
帖 子:10
专家分:23
注 册:2011-11-1
收藏
得分:0 
回复 2楼 waterstar
调试好了:
把结果发出来,谢谢你:

程序代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0,j=0;

    FILE *fp1,*fp2;
    char arr1[8000],row1[50],row2[50],row3[50];

    fp1=fopen("sourceData.txt","r");

    if(NULL==fp1)
    {
        printf("File sourceData.txt reading wrong!\n");
        return -1;
    }

    fp2=fopen("destData.txt","w+");
    if(NULL==fp2)
    {
        printf("File destData.txt open wrong!\n");
        return -1;
    }

    for(i=0;i<65535;i++)
    {
        fgets(arr1,8000,fp1);
        //fprintf(fp2,"%s",arr1);

        sscanf(arr1,"%s           %s           %s",row1,row2,row3);
        fprintf(fp2,"%s\n",row2);
    }




    return 0;

}

2011-12-26 12:54
快速回复:请教大家一个关于文件读取的问题
数据加载中...
 
   



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

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