【发布时间】:2016-02-06 15:52:57
【问题描述】:
我正在尝试将列表中结构的内容复制到二进制文件中。
这是我的结构声明:
typedef struct
{
char dni[9];
char nombre[100], apellido[100];
double deuda;
} t_datos;
struct s_nodo
{
t_datos dati;
struct s_nodo *sig;
};
typedef struct s_nodo *t_nodo;
void newfile(t_nodo, FILE *);
主要是我用 .dat 文件中的一些数据填充列表,看起来没问题,因为如果我打印列表一切正常。当我尝试复制我的结构时遇到问题列表到一个新的二进制文件。
//open and copy old binary file to the list...
fc = fopen("c:\\norep.dat", "w+b");
if (fc == NULL)
{
puts("Error");
exit(-1);
}
newfile(lista, fc);
这是我的功能:
void newfile(t_nodo lista, FILE *fc)
{
if (lista != NULL)
{
fwrite(lista->dati, sizeof(t_datos), 1, fc);
newfile(lista->sig, fc);
}
}
我得到的错误是:
错误:'fwrite' 的参数 1 的类型不兼容|
我知道错误可能在于我将列表传递给函数的方式,我看到了 fwrite 的原型,但我不知道应该如何修复代码。
【问题讨论】:
标签: c list file data-structures