
No.1ベストアンサー
- 回答日時:
正直、構造体に FILEポインタ持たせる利点が分からないのだけど、
とりあえず NULL でいいんじゃないでしょうか、。
こんな感じ
sFILE fp={NULL,"output.txt",1100};
No.4
- 回答日時:
fp はファイルをオープンして初めて値が決まるのですから、初期化する時点ではひとまずNULLにしておいてよいかと思いますが。
その後、sFile.fp=fopen(....) です。
No.3
- 回答日時:
構造体の初期化子には定数式しか使えませんので、移植性のある候補としてはNULLだけかと思います。
stdin, stdout, stderrも、処理系によってはアドレス定数式に展開されますが、必ずしもそうなるとは限りません。
初期化子による初期化より、むしろ関数による初期化を行う方がよいかと思います。
こんな感じです。
sFILE open_file(const char* filename, int flag)
{
sFILE file = {NULL};
strncpy(file.filename, filename, sizeof(file.filename)-1);
file.flag = flag;
file.fp = fopen(file.filename, "r");
return file;
}
int main(void)
{
sFILE fp = open_file("output.txt", 1100);
...
return 0;
}
C++なら、コンストラクタで初期化するという手もあります。
No.2
- 回答日時:
初期値として何が入っているのがいいかはプログラムによります。
他人に聞いてもわかりません。可能性としてあるのは、NULL、stdin、stdout、stderrでしょうか。お書きの雰囲気だと、filenameで示されるファイルをオープンしてそのファイルポインタを入れるんでしょうか。その場合なら、未オープンの意味で、NULLかな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルからの全文読み込み
-
バイナリファイルでの時刻表示
-
ファイルに行番号を追加
-
fopenでファイル名に、変数を使...
-
C言語を用いて、csvファイル内...
-
c言語 ファイルから数字を読み...
-
テキストファイル内に対して, ...
-
乱数とファイルの入出力の質問...
-
クリップボードから画像取得
-
ファイルを読み込んだ時に同じ...
-
初心者のc言語
-
[C言語]2つのファイルを用いた...
-
2÷3などの余りについて
-
「Aに対するBの割合」と「Aに対...
-
20'(角度)の計算がわかりま...
-
Enterキーを押されたら次の処理...
-
C言語での引数の省略方法
-
有効数字について 以前質問をし...
-
10個出力で改行したいのですが...
-
#if 1 #elseの意味について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数ファイルの同時読み込みの...
-
c言語でのfscanfについて
-
隣接行列を読み込んで有向グラ...
-
ファイル出力で改行を入れたい!
-
C言語でファイル読み書きを早く...
-
大量の入力ファイルを扱うとき...
-
ファイルへの書込み処理が異常...
-
fopenでファイル名に、変数を使...
-
fgets( ) の返り値は何?
-
日本語ファイル名のFTPについて
-
C言語 連番データの読み込み
-
テキストファイル内に対して, ...
-
InternetReadFileを使ったファ...
-
CRC32の計算方法
-
テキストファイルをバイナリフ...
-
ガンマ変換 C言語でプログラ...
-
C言語でのCSVソートとデータ抽...
-
漢字を配列に入れたいのですが
-
エラーがわかりません、、
-
fscanfでループしてしまう。
おすすめ情報