質問

私は、次の値を含む配列番号を持っているとしましょう。

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ページをお読みください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top