我尝试使用以下代码将结构写入文件:
#include<stdio.h>
struct record
{
char name[80];
int roll;
};
int main( )
{
FILE* p=NULL;
int length=0;
char* file="abcd.txt";
struct record r1={"abcd",55};
p=fopen(file,"w");
if (p==NULL) {
printf("Error in opening file");
}
length=sizeof(r1);
fwrite(&r1,length,1,p);
fclose(p);
printf("Written successfully\n");
free(r1);
}
当我尝试使用以下文件读取以下文件时:
#include<stdio.h>
main( )
{
int c;
FILE* p=NULL;
p=fopen("abcd.txt","r");
if (p) {
while ((c=getc(p)) != EOF)
putchar (c);
fclose(p);
}
}
当我运行最后一个程序时,打印的值是:
abcd 7
好吧,第一个字段“abcd”打印正确,但下一个打印的值是 7,尽管我试图在文件中写入 55。出了什么问题?