【发布时间】:2019-09-24 16:04:57
【问题描述】:
我是 C 新手,我正在尝试将结构读取和写入 .dat 文件。添加数据时,我会看到 .dat 文件中的字符。但是,我无法读取数据,并且我的代码在每次出现结构时都应该输出“val”时什么也不输出。
我查看了许多来源,但我找不到我的代码与这些来源有何不同。
https://www.geeksforgeeks.org/readwrite-structure-file-c/ 该网站最初用于了解如何执行此操作。
Read/Write to binary files in C 我用它来查看如何修复我的代码,但解决方案没有帮助。
我尝试更改 while 循环中的语句。
struct person
{
int id;
char lastName[15];
char firstName[15];
char age[4];
};
int main(void) {
//create new file
FILE *fp = fopen("file.dat", "wb+");
struct person a = {10, "Smith", "John", 25};
fwrite(&a, sizeof(a), 1, fp);
struct person b = {2, "Ali", "Jon", 12};
fwrite(&b, sizeof(b), 1, fp);
struct person c = {19, "Walter", "Martha", 82};
fwrite(&c, sizeof(c), 1, fp);
struct person p;
while(fread(&p, sizeof(p), 1, fp))
printf("val");
}
目前,它应该打印 3 个“Vals”,因为 dat 文件中添加了三个人。但是,没有任何东西被打印出来。
感谢您的帮助。
【问题讨论】:
标签: c