小编sim*_*556的帖子

从二进制文件读取并转换为double?

我正在尝试编写一个读取二进制文件并将其转换为数据类型的C程序.我正在使用head命令生成二进制文件head -c 40000 /dev/urandom > data40.bin.该程序适用于数据类型int和char但不适用于double.这是该程序的代码.

void double_funct(int readFrom, int writeTo){
    double buffer[150];
    int a = read(readFrom,buffer,sizeof(double));
    while(a!=0){
        int size = 1;
        int c=0;

         for(c=0;c<size;c++){
            char temp[100];
            int x = snprintf(temp,100,"%f ", buffer[c]);
            write(writeTo, temp, x);
        }
        a = read(readFrom,buffer,sizeof(double));
    }
}
Run Code Online (Sandbox Code Playgroud)

这是有效的char函数

void char_funct(int readFrom, int writeTo){
    char buffer[150];
    int a = read(readFrom,buffer,sizeof(char));
    while(a!=0){
        int size = 1;
        int c=0;

        for(c=0;c<size;c++){
            char temp[100]=" ";
            snprintf(temp,100,"%d ", buffer[c]);
            write(writeTo, temp, strlen(temp));
        }
        a = read(readFrom,buffer,sizeof(char));
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,使用char我需要获得40000个单词 …

c file-io file binary-data

2
推荐指数
1
解决办法
661
查看次数

标签 统计

binary-data ×1

c ×1

file ×1

file-io ×1