ファイル中の選択1データを削除したいと思っております。
①キーボードから、削除したいNoを入力する。
②ファイルからNo,名前、住所、電話番号、メールアドレス等のデータを読み込み、構造体に代入する。
③削除したいNoの構造体データを削除する。
④ファイルに構造体データを書き込む。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
FILE *fp;
char *fname = "comma.csv";
struct member {
int no;
char name[20];
char adress[20];
char tel[20];
char mail[20];
};
main()
{
int no;
int ret;
printf("---会員管理システムメニュー---\n\n");
printf("1.新規登録\n");
printf("2.変更\n");
printf("3.削除\n");
printf("4.一覧表示\n");
printf("No? ");
ret=scanf("%d",&no);
if(no == 1)
{
ret = add_record();
}
else if(no == 2)
{
ret = update_record();
}
else if(no == 3)
{
ret = del_record();
}
//else if(no == 4)
//{
// ret = disp_record();
//
//}
}
int del_record()
{
struct member member[20]={0};
int no;
int choice=0;
int i=0;
printf("\n会員番号(0-10数値)? ");
scanf("%d",&no);
fp = fopen(fname,"r");
if(fp == NULL)
{
printf("%sファイルが開けません\n",fname);
return -1;
}
while(feof(fp)==0)
{
if((fscanf(fp,"%d,%[^,],%[^,],%[^,],%s",&(member[i].no),member[i].name,member[i].adress,member[i].tel,member[i].mail)) != EOF)
{
if(no==member[i].no)
{
printf("\n%d",member[i].no);
printf("\n%s",member[i].name);
printf("\n%s",member[i].adress);
printf("\n%s",member[i].tel);
printf("\n%s",member[i].mail);
printf("\n%s","削除しますか?(1:yes 2:no)? ");
scanf("%d",&choice);
if(choice==2)
{
system("cls");
main();
}
}
}
i++;
}
fclose(fp);
(削除処理を記述)
}