首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于C语言读取txt文件数据,该如何解决

2013-11-02 
关于C语言读取txt文件数据请教一下大家:怎样读取一个txt文件里面的16进制的数据,例如:13 12 AA 将这些数据

关于C语言读取txt文件数据
请教一下大家:怎样读取一个txt文件里面的16进制的数据,例如:13 12 AA 
将这些数据读取后,写入另一个bin文件中呢。
现在我写的只能读取十进制的数据。
while (1) {
        if (1!=fscanf(fp_data,"%x",&v)) break;
        fwrite(&v,1,1,fp_txt);
    }
fp_data ,和fp_txt都是文件指针;
[解决办法]


# include <stdio.h>

int main()
{
    FILE * input_file = fopen("input", "r");
    FILE * output_file = fopen("output", "wb");
    int i;
    char c;

    while (fscanf(input_file, "%x", &i) != EOF)
    {
        c = i;
        fwrite(&c, 1, 1, output_file);
    }

    fclose(input_file);
    fclose(output_file);

    return 0;
}

[解决办法]
#include <stdio.h>
#include <string.h>
#include <conio.h>
FILE *fi,*fo;
int r;
unsigned int n,c;
//-------------------------------------------------------
void main(int argc,char *argv[])
{
    if (argc<3) {
        cprintf("Hex2Bin srcfile desfile");
        return;
    }
    if ((fi=fopen(argv[1],"r"))==NULL) {
        cprintf("Can not find file %s",argv[1]);
        return;
    }
    if ((fo=fopen(argv[2],"wb"))==NULL) {
        fclose(fi);
        cprintf("Can not create file %s",argv[2]);
        return;
    }
    n=0;
    while (1) {
        r=fscanf(fi,"%2x",&c);
        if (EOF==r) break;//
        if (1==r) {
            fputc(c,fo);
            n++;
        } else {
            r=fgetc(fi);
            if (EOF==r) break;//
        }
    }
    fcloseall();
    cprintf("OK to Hex2Bin %d bytes.",n);
}

热点排行