| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 592 人关注过本帖
标题:C语言文件的输入问题
只看楼主 加入收藏
macwind
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-3-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
C语言文件的输入问题
这个问题我感觉应该很简单,但是鄙人C语言没学好,麻烦会的朋友帮帮忙。

我想将一个文件里的数据输入到一个数组里,请问应该怎么编写程序?
数组设定为二维数组a[4][8],要将文件里的数据分别赋予数组,比如说文件里的第一组数据是:2003001 10 11 12 13 26 28 11 ,要将2003001赋予a[0][0],10赋予a[0][1],11赋予a[0][2],12赋予a[0][3],13赋予a[0][4],26赋予a[0][5],28赋予a[0][6],11赋予a[0][7]。如此下去,直至将文件里的所有数据输入相应的数组里去。

文件里的数据格式是:
2003001 10 11 12 13 26 28 11
2003002 04 09 19 20 21 26 12
2003003 01 07 10 23 28 32 16
2003004 04 06 07 10 13 25 03
文件地址及名称为:C:\\TURBOC2\\SSQ\\G\\gx.dat
搜索更多相关主题的帖子: 输入 文件 C语言 
2010-03-03 17:48
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 

#include <iostream>

int main()
{
    FILE *fp=fopen("C:\\TURBOC2\\SSQ\\G\\gx.dat","r");
    if (fp)
    {
        __int64 a[4][8];
        int i,j;
        for (i=0;i<4 ;i++ )
        {
            fscanf(fp,"%I64d %I64d %I64d %I64d %I64d %I64d %I64d %I64d",&a[i][0],&a[i][1],&a[i][2],&a[i][3],&a[i][4],&a[i][5],&a[i][6],&a[i][7]);
            printf("%I64d %I64d %I64d %I64d %I64d %I64d %I64d %I64d\n",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7]);
        }

        fclose(fp);
    }
    else
    {
        printf("error");
    }
    return 0;
}

★★★★★为人民服务★★★★★
2010-03-03 19:55
macwind
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-3-3
收藏
得分:0 
回复 2楼 cnfarer
非常感谢!!
帮大忙了
2010-03-03 20:37
macwind
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-3-3
收藏
得分:0 
运行不出来,你的代码好像是C++的,我要的是C的
2010-03-03 22:51
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 
将包含文件换掉,将__int64类型换成字符数组
#include <stdio.h>

int main()
{
    FILE *fp=fopen("C:\\TURBOC2\\SSQ\\G\\gx.dat","r");
    if (fp)
    {
        char a[4][8][10];
        int i;
        for (i=0;i<4 ;i++ )
        {
            fscanf(fp,"%s %s %s %s %s %s %s %s",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7]);
            printf("%s %s %s %s %s %s %s %s\n",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7]);
        }

        fclose(fp);
    }
    else
    {
        printf("error");
    }
    return 0;
}

★★★★★为人民服务★★★★★
2010-03-04 08:09
macwind
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-3-3
收藏
得分:0 
还是不行,运行报错
2010-03-04 12:24
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
在TC2.0、VC下都行啊!!你用什么编译器啊?

★★★★★为人民服务★★★★★
2010-03-04 15:47
tianfengwang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-3-5
收藏
得分:0 
这是C++论坛区,你到C语言区试试
2010-03-05 10:25
chengwen1016
Rank: 2
等 级:论坛游民
帖 子:14
专家分:60
注 册:2010-3-6
收藏
得分:0 
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    fstream fin;
    fin.open("C:\\TURBOC2\\SSQ\\G\\gx.dat");
    if (fin.fail())
    {
        cout << "File open failed !!" << endl;
        exit(0);
    }

    int i = 0, j = 0, num;
    int array[4][8];
    while (!fin.eof())
    {
        fin >> num;
        array[i][j++] = num;
        if (j == 8)
        {
            i++;
            j = 0;
        }
    }

    for (i = 0; i < 4; i++)
    {
        for (j = 0; j < 8; j++)
        {
            cout << array[i][j] << "  ";
        }
        cout << endl;
    }
    return 0;
}
2010-03-06 21:42
快速回复:C语言文件的输入问题
数据加载中...
 
   



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

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