我正在将结构写入文件,但它返回垃圾。这是我的代码:
ptFile = fopen("funcionarios.dat", "ab+");
fwrite(&novoFunc, sizeof(strFunc), 1, ptFile);
struct novoFunc 的值,在 fwrite 之前和之后都不是垃圾。但是,当我返回文件值时:
ptFile = fopen("funcionarios.dat", "rb+");
[...]
fseek(ptFile, i*sizeof(strFunc), SEEK_SET); //on the loop, i goes from 0 to total structs
fread(&funcionario, sizeof(strFunc), 1, ptFile);
printf("Code: %d; Name: %s; Address: %s; CPF: %d; Sales: %d\n", funcionario.codigo, funcionario.nome, funcionario.endereco, funcionario.cpf, funcionario.numVendas);
知道为什么吗?代码运行良好,我不记得做过重大更改。
提前致谢
编辑:结构定义
typedef struct func{
int codigo;
char nome[50];
char endereco[100];
int cpf;
int numVendas;
int ativo;
} strFunc;
Edit2:它变得更奇怪了:它在 linux 上运行良好(使用 netbeans 和 gcc 编译器),但在 windows 上却不行(devcpp 和代码块)。好吧,整个代码在这里:
函数 cadastraFucionario() 注册用户,当我使用 listaFuncionarios() 列出所有注册数据时,它返回垃圾。这是 listaFuncionarios() 返回的打印结果:
http://img715.imageshack.us/img715/3002/asodfadhf.jpg
对不起,代码不是英文的