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

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

有人知道我想念什么吗?谢谢!

有帮助吗?

解决方案

是的,你缺少 sizeof.

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

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

其他提示

数字规模应为炭的数组而不是char。

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

有些不对劲,

numbersscaled/numbersscaled[0]

不是 char numberscaled[4]?在您的问题中,您已将其宣布为字符。

你应该阅读 fwrite 曼页面。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top