如何解决在C中将整数读取到文本文件结构中存在整数
我已经声明了同时具有整数和字符串类型变量的结构。我能够扫描数据并进行打印而不会出现问题。但是,当我尝试将结构写入文件时,它仅读取字符串,而我不明白为什么。
结构如下:
df.sort_values(['continent','date'],ascending=True)
以下是用于获取结构输入的函数:
struct employee_details
{
char name[45];
int id;
char designation[30];
long long int phone_number;
char address[75];
}employee;
这是将这些数据写入文件的功能:
void get_employee_details()
{
printf("\nName: ");
scanf("%s",employee.name);
printf("ID: ");
scanf("%d",&employee.id);
printf("Designation: ");
scanf("%s",employee.designation);
printf("Phone Number: ");
scanf("%lld",&employee.phone_number);
printf("Address: ");
scanf("%s",employee.address);
}
我在main()中有一个循环来重复写入过程,直到用户想要,但是无论我输入多少结构,只有字符才被写入。
我该怎么办?使用
void add_employee(int is_first_record,int to_append)
{
FILE* p_wfile;
if (to_append == 0)
{
if (is_first_record == 1)
p_wfile = fopen("Record.txt","w");
else
p_wfile = fopen("Record.txt","a");
}
else
p_wfile = fopen("Record.txt","a");
if (p_wfile == NULL)
{
printf("Can't open file.");
exit(1);
}
printf("\nADD EMPLOYEE's DETAILS\n");
get_employee_details();
fwrite(&employee,sizeof(struct employee_details),1,p_wfile);
if (fwrite == 0)
printf("Error writing to file!\n");
fclose(p_wfile);
}
而非更好的功能与我有某种联系吗?
解决方法
我猜您正在尝试使用文本编辑器读取文件。
问题与fwrite有关: “ fwrite”将写入数字而不将其转换为ASCII或utf-8字符,因此通过文件编辑器打开时找不到数字。相反,您会发现与存储的数字等效的字符。尝试使用“ fread”读取文件,您将把实际值恢复为“ employee_details”结构。
如果您想通过文件编辑器读取数据:使用fprint
尝试类似的方法: fprintf(p_wfile,“%s%d \ n”,employee.name,employee.id);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。