私はCプログラミングに関する質問があります。これはバイナリファイルに関するものです。私のコードでは、私はそれをバイナリファイルから読み書きするようにしましたが、何らかの理由でそれをしません。私はいくつかのことを変えようとしましたが、エラーはどこにも表示されません。そして、これはちょっと難しいことですが、このコードではそれが残されています私はプログラム全体を完了しているので、それは通常よりも少し神経質になります。私がやっていないことと、バイナリファイルを読み書きするために何をすべきかを指摘してください。 :Cプログラム:バイナリファイルとの間で書き込みはできませんか?
#define MAX 4
//========================-STRUCTURE-=====================================================================
struct person{
char name[30];
char mail[30];
char tele[30];
};
struct person p[MAX];
//========================-MAIN FUNCT-===============================================================
int main()
{
bool continue=true,exists=false;
int answer,i;
char filnme[20];
FILE *fil;
printf("Would you like to open an already existing file?[y/n]: ");
scanf("%d",&answer);
if(answer=='y'||answer=='Y')
{
finns=true;
}
else finns=false;
getchar();
printf("\n\nType the name of the file you will use: ");
scanf("%s",filnme);
if(exists)
{
fil = fopen(filnme,"rb");
for(i=0;i<MAX;i++)
{
while(feof(fil)==0)
{
fread(&p, MAX, 1, fil);
printf("%s %s %s\n",p.name,p.mail,p.tele);
}
}
fclose(fil);
}
else fil = fopen(filnme,"wb");
do
{
system("cls");
int choice;
printf("What would you like to do?");
printf("\n_______________\n");
printf("1. Add another person to the list\n");
printf("2. Print the entire list\n");
printf("3. Remove information from the list\n");
printf("4. Sort\n");
printf("5. Change information\n");
printf("6. Search\n");
printf("7. Exit\n");
printf("\nChoice: ");
scanf("%d",&choice);
printf("\n");
system("cls");
switch(choice)
{
case 1:
addtolist();
getch();
break;
case 2:
write();
getch();
break;
case 3:
remove();
getch();
break;
case 4:
sort();
getch();
break;
case 5:
change();
getch();
break;
case 6:
search();
getch();
break;
case 7:
continue=false;
break;
default:
printf("Not a valid choice!");
getch();
break;
}
}while(continue);
for(i=1;i<=MAX;i++)
{
fwrite(&p, MAX, 1, fil);
}
fclose(fil);
system("cls");
}
関数の宣言など、私はそれをカバーしています。 eメイン。
ありがとうございます!
ポインタを使用する前に 'fopen()'が成功したことを確認してください! –
既存のファイルを開くかどうかの答えは変数 'finns'に渡されます。 'exists'を使ってファイルを読み書きするかどうかを決定します。 –
"continue"という名前の変数があります。これはC/C++の予約語です。 – selbie