- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語のfor文について)
C言語のfor文でバイナリファイルに値を書き込む方法
このQ&Aのポイント
- C言語初心者です。バイナリファイルに値を書き込みたいですが、うまくいきません。値が半分だけ正常に入って、あとの半分はおかしな値が入ります。どなたか分かる方教えていただけませんか。
- C言語のfor文を使用して値をバイナリファイルに書き込む方法を教えてください。正常に値を書き込むためのコードが知りたいです。
- output.datというバイナリファイルに100から149までの値を書き込みたいですが、どうしても正常に書き込めません。半分だけ値が正常に書き込まれ、残りの半分は意図しない値が書き込まれてしまいます。解決策を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
三度です j=100; でいけます 100->255->0->255 あと、バイナリ出力なので、 unsigned charの方がいいですね
その他の回答 (3)
- nagare
- ベストアンサー率33% (280/831)
回答No.3
#2です 参考までに裏技です 理解してから使ってくださいね char j; j=0x00; for(i=0;i<456;i++) { output[i]=j++; }
質問者
お礼
なるほど!参考にさせていただきます。 初心者の私にはありがたいです。 ご回答ありがとうございます! 100から書き込むことは可能なのでしょうか?
- nagare
- ベストアンサー率33% (280/831)
回答No.2
#1さん通り、jの範囲は0~255でなければいけませんよ >バイナリファイルに値を書き込みたい(100~149) 100~555になっているけど? こんな感じでしょうか j=0x00; for(i=0;i<456;i++) { output[i]=j; j++; if(256==j) { j=0x00; } }
質問者
お礼
ご回答ありがとうございます。 非常に参考になりました!見本まで書いていただいてとても助かります! >バイナリファイルに値を書き込みたい(100~149) 私の質問のミスです。 正しくは、「100から555の値を書き込みたい」です。 すみませんでした…。
- anicicle
- ベストアンサー率36% (129/356)
回答No.1
char型が扱える数値の範囲は「-128~0~127」(0~255)までです。 それを超えた場合は今回のルーチンでは内容に保証はできません。
質問者
お礼
なるほど、確かに128から値がおかしくなっていました。 ご回答ありがとうございます!
お礼
三度目のご回答ありがとうございます!! 非常に助かり、参考になりました。 お忙しい中ありがとうございました。