-2

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

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’)

有人知道我错过了什么吗?谢谢!

4

3 回答 3

3

是的,你失踪了sizeof

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

请注意,您的问题中有很多错别字(缺少[]等),因此很难检测到真正的问题。请修复它。

于 2009-07-02T08:43:00.593 回答
0

numbersscaled 应该是字符数组而不是字符。

fwrite(numbersscaled, sizeof(numbersscaled[0]), 4, filebin); 
于 2009-07-02T08:46:05.503 回答
0

有什么不对劲,

numbersscaled/numbersscaled[0]

不是char numberscaled[4]吗?您已在问题中将其声明为字符。

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

于 2009-07-02T08:46:23.660 回答