掲示板利用宣言

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

 私は

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

掲示板2

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

No.26507

読み込みしてるのかなぁ
投稿者---さる(2006/03/22 23:27:02)


書き込みのところはちゃんとできてるみたいなんですが
ファイルオープンのところがどうもちゃんと機能してないみたいなのですがどこか間違ってるところはありますか?教えてください
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct MEMBER {
int ID;
char Name[20];
int Age;
struct MEMBER *next;
};

struct MEMBER *nyuuryoku(struct MEMBER *tail,struct MEMBER *head);
void itiranhyou(struct MEMBER *head);
struct MEMBER *sakujo(struct MEMBER *head, struct MEMBER *tail);
void clear(struct MEMBER *fin,struct MEMBER *head);

int main(void) {
int q = 0;
struct MEMBER dmy;
struct MEMBER *head = &dmy;
struct MEMBER *tail;
struct MEMBER *x;
FILE *fp;

head = &dmy;
x = &dmy;
head->next = NULL;
tail = head;

if((fp=fopen("MEMBER_file.txt","r"))==NULL){ 
printf("ファイルが開かない\n");
}
else
for(x = head->next; x != NULL; x = x->next){
fscanf(fp, "%d %s %d ", &x->ID, x->Name, &x->Age); 
x->next = NULL;
tail->next = x;
tail = x;

fclose(fp);

}
while (1){
printf("<メニュー>\n1:追加\n2:一覧\n3:削除\n99:END\n\nNO?\n"); /*表示*/
scanf_s("%d", &w);
if(q == 1){ 
fin = nyuuryoku(fin,head);
}
else if(q == 2){ 
itiranhyou(head); 
}
else if(q == 3){ 
fin = sakujo(head,fin);
}
else if(q == 99){

if((fp=fopen("MEMBER_file.txt","w"))==NULL){
printf("ファイルが開かない\n");
}
for(x = head->next; x != NULL; x = x->next){
fprintf(fp, "%d %s %d \n", x->ID, x->Name, x->Age);
}
fclose(fp);
clear(head,tail); /*メモリ解放*/
break;
}
}
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:読み込みしてるのかなぁ 26508 ぽへぇ 2006/03/23 01:34:11
<子記事> Re:読み込みしてるのかなぁ 26535 shu 2006/03/29 18:59:59
<子記事> Re:読み込みしてるのかなぁ 26536 shu 2006/03/29 19:03:29


No.26508

Re:読み込みしてるのかなぁ
投稿者---ぽへぇ(2006/03/23 01:34:11)


>書き込みのところはちゃんとできてるみたいなんですが
>ファイルオープンのところがどうもちゃんと機能してない
>みたいなのですがどこか間違ってるところはありますか?教えてください

とりあえず字下げをしましょう。
forの中でfcloseしているという間違いに気づくはずです。
以下、字下げしたコード

>   if((fp=fopen("MEMBER_file.txt","r"))==NULL) { 
>      printf("ファイルが開かない\n");
>   } else
>      for(x = head->next; x != NULL; x = x->next) {
>         fscanf(fp, "%d %s %d ", &x->ID, x->Name, &x->Age); 
>         x->next = NULL;
>         tail->next = x;
>         tail = x;
>         fclose(fp); // <-ここ
>      }




この投稿にコメントする

削除パスワード

No.26535

Re:読み込みしてるのかなぁ
投稿者---shu(2006/03/29 18:59:59)


>書き込みのところはちゃんとできてるみたいなんですが
>ファイルオープンのところがどうもちゃんと機能してないみたいなのですがどこか間違ってるところはありますか?教えてください

問題を載せないで、ソースを載せていることが間違っています。

掲示板のルールが守られていません。
ルールが守られていないので、思うような恩恵は得られません。

C言語で組むプログラムも、C言語文法というルールを守らないと、思うように動きません。


この投稿にコメントする

削除パスワード

No.26536

Re:読み込みしてるのかなぁ
投稿者---shu(2006/03/29 19:03:29)


>書き込みのところはちゃんとできてるみたいなんですが
>ファイルオープンのところがどうもちゃんと機能してないみたいなのですがどこか間違ってるところはありますか?教えてください

開いたスレッドが、ひらきっぱなしです。


この投稿にコメントする

削除パスワード

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