“!=”: 没有从“int”到“char [20]”的转换

void Log(scores st[]) //录入用户成绩的函数
{
int n,k = 0;
char ch;
FILE* fp; //基础,定义一个文件指针
fp = fopen("C:\record.txt", "w+"); //以读写的形式打开这个文本文件
if (fp == NULL) //如果文件打开错误
{
printf("对不起,文件错误!-_-!\n");
exit(1);
}
printf("请按顺序输入您的名称和时间成绩:\n");
for (n = 0; n< 50; n++)
{
//如果姓名栏为空,则跳出
if (st[n].NAME != '\0')(就是这里报错)
k++;
}
scanf("%lf", &st[k].t); //用户输入姓名与成绩
while (ch != '$')
{
fputc(ch, fp);
ch = getchar();
}
fwrite(st, sizeof(st[k]), 1, fp);
fprintf(fp, "%s %lf", st[k].NAME, st[k].t);
fclose(fp); //关闭文件夹
}

if (st[n].NAME != '\0')(就是这里报错)
NAME是字符串,'\0'只是个字符,不能判断相等的。
改为 if(st[n].NAME[0] != '\0') 你就是想判断NAME是不是空字符串