ショッピングモール  Personal Health / Stress ( Anger Management )


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.4924

ファイルポインタ
投稿者---neko(2005/11/24 20:10:30)


構造体を使った、「ファイルポインタ」についての質問です。

少々ややこしくなってしまい、質問とは不要な部分が沢山ありましたので
要点のみを簡略化させていただきました。
わかりずらいようでしたら、申し訳ないことでございます。
すぐに訂正させていただきます。

まず、以下のようなファイルポインタと構造体を作りました。
FILE *fp;

struct sample{
  int fst;
  int snd;
}test = {0,0};

仮に、現在この上記の変数には「test.fst = 1」「test.snd = 2」が入っているとします。
次に、この値を「test.txt」というファイルを作成してそれに書き込みます。
  fp = fopen("test.txt", "w");
  fprintf(fp, "%d %d", test.fst, test.snd);
  fclose(fp);

すると、test.txtというファイルが作成され、それを開くと
  1 2
という数値が書き込みされていますよね。

では、このファイルを読み込む場合にはどう記述すればいいのでしょうか?
以下のように記述すると、ビルドの際はエラーが出ないのですが
読み込む作業(以下のプログラム)を実行したときにエラーが起こってしまうんです。
  fp = fopen("test.txt", "w");
  if(fp==NULL){ printf("セーブはありません。\n"); return; }
  fprintf(fp, "%d %d", test.fst, test.snd);
  fclose(fp);

上記の3行目がどうもおかしいようなのですが・・・
エラーの内容も書かれておらず、どうすればよいのかわからず
こちらにて書き込みをさせていただきました。
お手数をおかけいたしますが、おわかりの方がいらっしゃいましたら
アドバイスをお願い致します。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ファイルポインタ 4926 REE 2005/11/24 20:48:57
<子記事> Re:ファイルポインタ 4934 wiz 2005/11/25 00:57:18


No.4926

Re:ファイルポインタ
投稿者---REE(2005/11/24 20:48:57)


>以下のように記述すると、ビルドの際はエラーが出ないのですが
>読み込む作業(以下のプログラム)を実行したときにエラーが起こってしまうんです。
>  fp = fopen("test.txt", "w");
>  if(fp==NULL){ printf("セーブはありません。\n"); return; }
>  fprintf(fp, "%d %d", test.fst, test.snd);
>  fclose(fp);
>
>上記の3行目がどうもおかしいようなのですが・・・

どう見ても読み込む作業には見えないのですが・・・
提示する部分を間違えていませんか?


この投稿にコメントする

削除パスワード

No.4930

Re:ファイルポインタ
投稿者---RAPT(2005/11/24 23:31:29)


>>読み込む作業(以下のプログラム)を実行したときにエラーが起こってしまうんです。
実行時エラーですか。
どんなエラーですか。
エラーメッセージをコピー&ペーストしてください。



この投稿にコメントする

削除パスワード

No.4934

Re:ファイルポインタ
投稿者---wiz(2005/11/25 00:57:18)


こっちが書き込みですよね?
>  fp = fopen("test.txt", "w");
>  fprintf(fp, "%d %d", test.fst, test.snd);
>  fclose(fp);

こっちが読み込み。。。。?なにか違いますか?。。。。
>  fp = fopen("test.txt", "w");
>  if(fp==NULL){ printf("セーブはありません。\n"); return; }
>  fprintf(fp, "%d %d", test.fst, test.snd);
>  fclose(fp);

>  fp = fopen("test.txt", "w");
wは書き込み専用モードです。ファイルのオープン属性や
ファイルの入出力はこのサイトの第17章に乗っています。
http://www9.plala.or.jp/sgwr-t/c/sec17.html

>  fprintf(fp, "%d %d", test.fst, test.snd);
はストリームへ出力する関数です。
ストリームからの入力を得るにはfscanfを使用します。

>上記の3行目がどうもおかしいようなのですが・・・
>エラーの内容も書かれておらず、どうすればよいのかわからず
どういう内容のエラーだったのでしょうか?
読み込みだと思ってtestを初期化せずに与えたりしていませんか?



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity