我有一个带有菜单的程序。结构体称为“Siunta”,具有新值的结构体称为“nauja”。我正在尝试将其写入文件,然后从文件中读取。下面提供了读取和写入的函数。编译器的错误信息:
|144|error: 'Siunta' undeclared (first use in this function)|.
可能出了什么问题?
写作:
FILE* fp = fopen("file.bin", "wb");
struct Siunta nauja;
fwrite(&(nauja.siuntos_nr), sizeof(nauja.siuntos_nr), 1, fp);
fwrite(&(nauja.destination), sizeof(nauja.destination), 1, fp);
fwrite(&(nauja.svoris), sizeof(nauja.svoris), 1, fp);
fclose(fp);
阅读:
FILE* fp = fopen("file.bin", "rb");
struct Siunta nauja2;
fread(&nauja2, sizeof(Siunta),1,fp);
printf("siuntos nr: %d destination: %s Svoris: %d",nauja2.siuntos_nr, nauja2.destination, nauja2.svoris);
最佳答案
发生的错误是由于 sizeof(Siunta) 可能是 sizeof(struct Siunta),但您也可以使用 sizeof(nauja2) (这可能会更好)。
读你的代码,我看到你写了结构体Siunta的一些字段,但是在你想读所有结构体之后!
您必须使用以下方式编写结构:
fwrite(&nauja, sizeof(nauja), 1, fp);
那么您可以阅读:
fread(&nauja2, sizeof(nauja2), 1, fp);
关于C - 尝试从文件读取结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29589993/