我在C文件中遇到结构处理问题。我写这个程序是为了将银行客户记录保存到文件中。它正常工作,但是当我试图打开数据文件[.txt(或).dat]时,它显示了一些二进制数字。以下是我的计划。
/* Reading bank details and saving it on a file and printing it on
screen*/
#include <stdio.h>
//Declaring a structure
struct bank_details
{
char customer_name[20];
char cif_no[10];
int ac_no,pincode;
};
main()
{
struct bank_details bank;
FILE *file;
file= fopen("bank_file.dat", "w");
printf("Enter A/no:\n");
scanf("%d",&bank.ac_no);
printf("Enter customer name:\n");
scanf("%s",bank.customer_name);
printf("Enter CIF no:\n");
scanf("%s",bank.cif_no);
printf("Enter your PINCODE:\n");
scanf("%d",&bank.pincode);
fwrite(&bank, sizeof(bank), 1, file);
if (file!=0)
{
printf("Data successfully updated into file\n");
}
fclose(file);
}
答案 0 :(得分:3)
这是因为您正在使用fwrite
来写入您提供的数据的二进制流。 See here.您应该使用类似fprintf
的内容:
fprintf(file, "CustomerName: %s\nCIF Number: %s", bank.customer_name, bank.cif_no);