
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ランキング
-
c言語でのfscanfについて
-
ファイル出力で改行を入れたい!
-
c言語でデータの指定列の度数分...
-
CRC32の計算方法
-
同時にファイル読み込み 書き込み
-
ファイル読み込み EOF 判定
-
テキストファイルをバイナリフ...
-
C言語 BUF_SIZE文字以上ある行...
-
辞書検索プログラムの続きです。
-
FeliCaを利用した認証システム
-
なぜCSQとCIP形式ではコ...
-
fopenでファイル名に、変数を使...
-
構造体のメンバにファイルポイ...
-
Aの値からBの値を除するとは??
-
複数桁10進数の*桁目だけを抽出...
-
「Aに対するBの割合」と「Aに対...
-
Enterキーを押されたら次の処理...
-
エクセルで可視セルにのみ値貼...
-
10個出力で改行したいのですが...
-
main.c:7:43: warning: implici...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイル内に対して, ...
-
複数ファイルの同時読み込みの...
-
C言語でファイル読み書きを早く...
-
ファイル出力で改行を入れたい!
-
なぜCSQとCIP形式ではコ...
-
fopenでファイル名に、変数を使...
-
c言語でのfscanfについて
-
C言語にてXMLファイルから任意...
-
_popen() のエラー取得
-
数値のみ抽出(C言語)
-
ランダムアクセスができない
-
C言語でのCSVソートとデータ抽...
-
C言語 連番データの読み込み
-
ファイルの作成・書き込み・読...
-
fscanfでループしてしまう。
-
ファイルへの書込み処理が異常...
-
ファイルを読み込んで条件式を...
-
CSVファイルを読み込み構造体の...
-
C言語でセグメンテーションエ...
-
C言語について
おすすめ情報