代码
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])分配给name(char [256]),当使用fwrite时我得到“不能从'Student'转换参数1 'const void'“
答案 0 :(得分:3)
你不能像C中那样分配一个数组,而fwrite
需要一个指针,你不能传递一个结构。怎么样:
strcpy(CurStudent.name, "Root");
fwrite(&CurStudent, sizeof(CurStudent), 1, fp);
^
答案 1 :(得分:2)
char
个数组。 C中有一些特殊的函数,以str
开头并帮助处理这些函数。fwrite
需要一个指向数据的指针。