1

代码

struct Student
{
unsigned int ID;
char name[256];
int FileLocLeft;
int FileLocRight;
int FileLocParent;
};

void main()
{
Student CurStudent;

FILE* fp = fopen("d:\\students.bat", "w");
if(fp == NULL)
{
    printf("File not found\n");
}
else
{
    fseek(fp,0,SEEK_SET);
    CurStudent.FileLocLeft = 0;
    CurStudent.FileLocParent = 0;
    CurStudent.FileLocRight = 0;
    CurStudent.ID = 0;
    CurStudent.name = "Root";
    fwrite(CurStudent,sizeof(Student),1,fp);
}
}

我遇到了两个错误,一个是我无法将“Root”(const char[15])分配给名称(char[256]),并且在使用 fwrite 时,我得到“无法将参数 1 从 'Student' 转换为 'const空白'”

4

2 回答 2

3

您不能像在 C 中那样分配给一个数组并且fwrite需要一个指针,您不能传递一个结构。怎么样:

strcpy(CurStudent.name, "Root");
fwrite(&CurStudent, sizeof(CurStudent), 1, fp);
       ^
于 2012-08-26T20:40:37.647 回答
2
  1. 字符串不过是char数组。C 中有一些特殊的函数可以str帮助处理这些问题。
  2. 获取结构变量的地址,fwrite需要一个指向数据的指针。
于 2012-08-26T20:40:36.843 回答