//読み込みファイル
#include <stdio.h>
#include <stdlib.h>
#define END_FILE 0 //ファイルの終端
#define MENU 0 //メニューの表示
#define ADDR 1 //新規レコードの追加
#define UPDATER 2 //更新
#define DELR 3 //削除
#define DISPR 4 //一覧表示
#define CANCEL 5 //キャンセル
#define END 5 //キャンセル
#define NO 2 //いいえ
#define ERROR -1 //エラーの時
#define NOERROR 0 //エラーじゃない時
FILE *fp; //ファイルポインタ
char *fname = "comma.csv"; //ファイル名
int ret = 0; //関数の返り値
int choice=0; //キーボード入力値格納変数
int i_num=0; //構造体配列の番号
//会員メンバ構造体
struct member
{
int no;
char name;
char adress;
char tel;
char mail;
struct member *pmember;
};
/*メイン関数*/
main()
{
int Pno = 0;
Pno = init_disp();
while(Pno!=CANCEL)
{
switch(Pno)
{
case MENU:
Pno = init_disp();
break;
/*case ADDR:
Pno = add_record();
break;*/
/*case UPDATER:
Pno = update_record();
break;
case DELR:
Pno = del_record();
break;*/
case DISPR:
Pno = disp_record();
break;
case END:
break;
}
}
}
int init_disp()
{
int no = 0; //数字の入力値
printf("---会員管理システムメニュー---\n\n");
printf("1.新規登録\n");
printf("2.変更\n");
printf("3.削除\n");
printf("4.一覧表示\n");
printf("5.終了\n");
printf("No? ");
scanf("%d",&no); //数値を入力
return no;
}
//*一覧表示*/
int disp_record()
{
struct member a, *ppmember;
ppmember = &a;
ret = csv_read(); //ファイルの読み出し関数
//ファイル読み込み終了まで繰り返す
while(feof(fp)==END_FILE)
{
//ファイルからデータを読み込み、構造体配列に格納
if((fscanf(fp,"%d,%[^,],%[^,],%[^,],%s",ppmember->no,ppmember->name,ppmember->adress,ppmember->tel,ppmember->mail)) != EOF)
{
printf("\n%d",ppmember->no); //番号
printf("\n%s",ppmember->name); //名前
printf("\n%s",ppmember->adress); //住所
printf("\n%s",ppmember->tel); //電話番号
printf("\n%s",ppmember->mail); //メールアドレス
}
}
printf("\n\n%s\n","メニューに戻ります。1:yes");
scanf("%d",&choice); //メニューに戻るための入力
//入力値が1の場合
if(choice==1)
{
system("cls"); //コマンドプロンプトの表示クリア
return MENU; //メイン関数に戻る
}
fclose(fp); //ファイルを閉じる
return NOERROR;
}
int csv_read()
{
fp = fopen(fname,"r"); //ファイルを読み込みモードで開く
//ファイルポインタがNULLかどうか判定
if(fp == NULL)
{
printf("%sファイルが開けません\n",fname);
return ERROR; //エラーの返り値として-1を返す
}
return NOERROR;
}
//ファイルからデータを読み込み、構造体配列に格納
if((fscanf(fp,"%d,%[^,],%[^,],%[^,],%s",ppmember->no,ppmember->name,ppmember->adress,ppmember->tel,ppmember->mail)) != EOF)
の部分でエラーが出ます。構造体のメンバに、不正な値が代入されているようです。
何が、問題なのか理解が出来ません。どなたかアドバイスよろしくお願いします。