char' to
char[10]'#include<stdio.h>
typedef struct student
{
char name[10];
int age;
int score;
}STD;
int main()
{
FILE *fp;
int i;
STD std[10];
//输入数据到文件
fp=fopen("C:\\Users\\123\\Desktop\\123.txt","wb");
if(fp==NULL){
printf("open file failed.\n");
return 0;
}
fp=fopen("C:\\Users\\123\\Desktop\\123.txt","wb");
printf("输入把。\n");
scanf("%d",&i);
scanf("%s %d %d",std[i].name,&std[i].age,&std[i].score);
fwrite(std,sizeof(STD),1,fp);
//尝试将已经输入的数据改变
scanf("%d",&i);
std[i].name='0';//出现错误
std[i].age=0;
std[i].score=0;
fwrite(std,sizeof(STD),1,fp);
//输出验证是否数据已归零
fp=fopen("E;/dasheng","rb");
fread(std,sizeof(STD),4,fp);
printf("%s %d %d",std[i].name,std[i].age,std[i].score);
printf("\n");
fclose(fp);
return 0;
}
char' to
char[10]',希望运行后的结果都是021行多余了。35行文件路径跟前面要对上,35行前需要fclose(fp)关闭文件。
scanf("%d",&i);
fwrite(std+i,sizeof(STD),1,fp); 写入输入的数组元素。fwrite(std,sizeof(STD),1,fp);始终写入的是std[0]
std[i].name[0]='0';,name是字符串,不能直接=赋值,字符要赋值给字符串的元素。