![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- C言語・C++・C# #include <stdio.h>int main(void) { int buf[100] = 6 2022/11/01 22:45
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
- C言語・C++・C# プログラムが書けません。 4 2023/01/22 22:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語でファイル読み書きを早く...
-
CRC32の計算方法
-
fopenでファイル名に、変数を使...
-
fgets関数の利用 c言語
-
プログラムの問題
-
fscanfでループしてしまう。
-
[C言語]2つのファイルを用いた...
-
テキストファイルをバイナリフ...
-
なぜCSQとCIP形式ではコ...
-
簡易grep関数ができません。助...
-
ファイル出力で改行を入れたい!
-
c言語でのfscanfについて
-
テキストファイル内に対して, ...
-
信頼区間の1.96や1.65ってどこ...
-
Enterキーを押されたら次の処理...
-
「Aに対するBの割合」と「Aに対...
-
C言語 プログラム
-
プログラムの実行時に'<'でリダ...
-
DWORDの実際の型は何でしょうか
-
C++にてtemplateで受け取った任...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語でのfscanfについて
-
fopenでファイル名に、変数を使...
-
複数ファイルの同時読み込みの...
-
C言語でセグメンテーションエ...
-
C言語でファイル読み書きを早く...
-
ファイル出力で改行を入れたい!
-
エラーがわかりません、、
-
テキストファイル内に対して, ...
-
構造体のメンバにファイルポイ...
-
C言語にてXMLファイルから任意...
-
ガンマ変換 C言語でプログラ...
-
【C言語】ファイルを読み込んで...
-
日本語ファイル名のFTPについて
-
fscanfでループしてしまう。
-
CRC32の計算方法
-
fgets( ) の返り値は何?
-
VisualStudioでのファイルの入...
-
ファイルに行番号を追加
-
ファイルへの書込み処理が異常...
-
ファイルが読み込めない・・・
おすすめ情報