将整数值写入二进制文件

时间:2009-07-02 08:39:17

标签: c binary-data

假设我有一个包含以下值的数组:

int numbers = [12, 511, 337, 254];

现在,我想将这些数字缩放为单字节值并存储在其中 一个char数组

char numbersscaled;  

for(i=0; i<4; i++) {  
    numbersscaled[i] = numbers[i]/2;  
}  

最后,我想将这些值写为二进制文件,如下所示:

filebin = fopen("results.bin", "wb");  

if(file==NULL) {   
    printf("Error\n");  
    return 1;  
}  

fwrite(numbersscaled, sizeof(numbersscaled[0]),
         numbersscaled/numbersscaled[0], filebin);  

fclose(filebin);   

不幸的是,当尝试编译这个程序时,gcc不喜欢fwrite命令:

error: invalid operands to binary / (have ‘char *’ and ‘int’)

任何人都知道我错过了什么? 谢谢!

3 个答案:

答案 0 :(得分:3)

是的,你错过了sizeof

sizeof(numbersscaled)/sizeof(numbersscaled[0])

请注意,您的问题中存在许多拼写错误(缺少[]等),因此难以检测到真正的问题。请修理它。

答案 1 :(得分:0)

numberscaled应该是字符数组而不是char。

fwrite(numbersscaled, sizeof(numbersscaled[0]), 4, filebin); 

答案 2 :(得分:0)

有些事情不对,

numbersscaled/numbersscaled[0]

不是char numberscaled[4]吗?你已经在你的问题中宣称它是一个字符。

您应该再次阅读fwrite手册页。