|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我想将单链表中的数据读取到txt文件中但是写入的函数不知出了什么问题写入后是乱码,从文件读取输出的函数没有问题,麻烦大佬们看看
<void readToFile(struct Node* list)//list是链表头
{
FILE* fp;
if ((fp = fopen("D:\\qt creator code\\homework2\\info_employee.txt", "wb")) == NULL)
{
printf("写入文件失败!\n");
exit(0);
}
struct Node* pMove = list->next;
emp *data_read = (struct employee *)malloc(sizeof (struct employee));
while (pMove != NULL)
{
strcpy(data_read->name,pMove->data.name);
data_read->num = pMove->data.num;
data_read->age = pMove->data.age;
data_read->emp_time.year = pMove->data.emp_time.year;
data_read->emp_time.year = pMove->data.emp_time.month;
data_read->emp_time.year = pMove->data.emp_time.day;
data_read->salary = pMove->data.salary;
fwrite(data_read,sizeof (emp),1,fp);
pMove = pMove->next;
}
fclose(fp);
}>
谢谢大家
本帖最后由 jackz007 于 2020-12-27 17:06 编辑
- void readToFile(struct Node * list) //list是链表头
- {
- int c ; // 记录数计数器
- FILE * fp ;
- if ((fp = fopen("D:\\qt creator code\\homework2\\info_employee.txt", "wb")) == NULL) {
- printf("写入文件失败!\n") ;
- exit(0) ;
- } else {
- c = 0 ; // 记录数计数器归 0
- fwrite(& c , sizeof(int) , 1 , fp) ; // 预留一个整型数的存储空间
- for(c = 0 ; list ; list = list -> next , c ++) fwrite(list , sizeof (emp) , 1 , fp) ;
- fseek(fp , 0 , 0) ; // 移动读写指针到文件开头
- fwrite(& c , sizeof(int) , 1 , fp) ; // 记载记录数,读取文件的时候有用
- fclose(fp) ;
- }
- }
复制代码
|
|