![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
for文でまわして求められた値をバイナリファイルに落としたく、下記のようなプログラムを書いたのですがうまくいきません。fwriteをretfunc中で行えばうまくいくと思うのですが、retfuncは実際は複雑なので、下位関数で計算だけを行い、mainでは戻り値を随時バイナリファイルに書き込むだけの処理にしたいです。
質問(1) 下記プログラムだとfor文がまわりません。勝手にループして欲しいだけなので引数はなくvoidとしてみましたが問題ないでしょうか?
質問(2)どうしたらループするでしょうか?
質問(3)fwriteの使い方はあってますか?サイズは1バイトで一個ずつの書き込みです。
※参考書を元にやっているため体系的に理解してないことも多いです。
ご教授よろしくお願いします。
#include <stdio.h>
#include <stdlib.h>
int retfunc (void)
{
int acnt,bcnt;
int srout;
for ( bcnt=0; bcnt<10; bcnt++) {
for ( acnt=0; acnt<10; acnt++)
srout=いろいろな処理;
return srout ;
}
}
main (int argc, char *argv[])
{
int srout;
FILE *FPo;
FPo = fopen("out.bmp","wb");
if ( FPo == NULL )
{
puts("Can't open out.bmp!");
return 1;
}
srout =retfunc();
fwite(&srout,1,1,fpo);
}
No.2ベストアンサー
- 回答日時:
ループを抜ける原因は#1の方が回答しているので
どう作れば良いか、を回答します。
まずループ分は呼び出し側に置きましょう。
for(){
for(){
srout = retfunc();
fwrite();
}
}
って事ですね。んでこの場合acntとbcntをどうするか、って問題があって、
(1)retfunc()に引数を持たせたくない場合
・acnt,bcntをグローバルに置く
・retfunc()内でスタティック変数として扱う
(2)retfunc()に引数を持たせても良い場合
・acnt,cntを引数で渡しましょう
んでfwrite()の使い方ですが、ずばり間違っています(動く事は動きますが、処理系によってはバグを招きます)。関数リファレンスをよく読んでください。第二引数は何と書いていましたか?
ありがとうございました。
>まずループ分は呼び出し側に置きましょう。
でだいぶ解決しました。
fwriteもsizeofで適切に処理することにしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力した文字列から母音だけを...
-
プログラムで関数は使わない方...
-
UWSCにてある一定の動作を無限...
-
fortran 論理変数? true
-
C言語のfor文の{}について
-
VBScriptでSQLに接続し、CSV出...
-
猫でもわかる、がわかりません。
-
ループを途中で抜けたいのですが。
-
C言語forループが完結した場合...
-
PHPの否定文
-
break文でループを一気に抜ける...
-
C言語、whileループを抜け出す...
-
プログラムの『軽い』と『重い...
-
プログラミングで質問です。言...
-
どうしてもわからないC言語の問題
-
strstr()関数の実装内容について。
-
C言語 キーボードで入力された...
-
While文の終わりにセミコロンが...
-
C言語の関数の戻り値がおかしい?
-
プログラムの解説をお願いします。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
break文でループを一気に抜ける...
-
ループを途中で抜けたいのですが。
-
do-while文が禁止される理由
-
入力した数値を倍々するプログラム
-
For文の終了値を関数にしても問...
-
C言語forループが完結した場合...
-
エクセルVBAで Do While (1)って?
-
入力した文字列から母音だけを...
-
if文の中にfor文なのか、for文...
-
Excel VBAで年度をまたぐ期間の...
-
C言語、whileループを抜け出す...
-
for文while文の無限ループの違...
-
プログラムで関数は使わない方...
-
Cプログラムが終了しない
-
PIC のプログラムについて ど...
-
アルゴリズムです!四つの数字...
-
UWSCにてある一定の動作を無限...
-
繰り返し文の利点について
-
ループの特定入力終了
-
PAD図の書き方
おすすめ情報