質問
私は、次の値を含む配列番号を持っているとしましょう。
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);
残念ながら、fwriteのコマンドを好きではありません。このプログラムはgccをコンパイルしようとしたときます:
error: invalid operands to binary / (have ‘char *’ and ‘int’)
誰も私が行方不明です何のアイデア? ありがとう!
解決
はい、あなたはsizeof
が欠落しています。
sizeof(numbersscaled)/sizeof(numbersscaled[0])
は難しい実際の問題を検出すること、(など、[]
の欠落)あなたの質問には多くのタイプミスがあることに注意してください。それを修正してください。
他のヒント
文字の配列でなければならないnumbersscaledチャー
fwrite(numbersscaled, sizeof(numbersscaled[0]), 4, filebin);
何かが、
と右ではありませんnumbersscaled/numbersscaled[0]
それはchar numberscaled[4]
はありませんか?あなたがあなたの質問のcharとしてそれを宣言したカントーます。
あなたは再びfwrite
のmanページをお読みください。
所属していません StackOverflow