【发布时间】:2013-10-17 19:42:36
【问题描述】:
我不知道如何处理这项任务。
我特地得用fwrite,但是我的问题是我不知道怎么把不同的文件类型(char[],int,double)写成二进制文件的一行,递增,然后写下一个链表中的大量数据会增加它.....等等。
下面的代码将链表(Data)中的数据写入文本文件,转到下一行并重复该过程,直到列表的最后一个元素被写入文本文件。
我需要编写一个具有相同原理但使用 fwrite 将链表中的数据写入二进制文件的函数。有什么想法吗?
void WriteTextFile(ListDataType *Data, int numEl)
{
FILE *textfile;
char name[50];
printf("\n\nWhat would you like to call the text file in which the data will be stored?\nNB remember to add \".txt\" after your chosen name!!!\nENTER NAME NOW>>");
scanf("%s", name);
textfile = fopen(name, "w+");
do
{
fprintf(textfile, "%s %d %d %.2lf %.2lf %.2lf %.2lf\n", Data->component.name, Data->component.int1, Data->component.int2, Data->component.double1, Data->double2, Data->double3, Data->double4 );
Data = Data->nextPtr;
}while(Data != NULL);
fclose(textfile);
}
【问题讨论】:
-
只要是简单数据类型的结构,就可以简单的把
fwrite(Data, 1, sizeof(ListDataType)); -
Data->component.name是结构中的完整字符串,还是动态分配的字符串指针? -
@mbratch 它是一个动态分配的字符串指针。
标签: c