我尝试使用结构中的指针对文件进行写入和读取。但是当我从文件中读取时,我看到了一些无用的值。我在Linux上使用的是GCC 4.7.2。我需要一些帮助。
阅读:
//read from a file
#include<stdio.h>
typedef struct
{
char* name;
char* phone;
}LISTING;
int main(void)
{
LISTING phoneList[14];
FILE * fp = NULL;
fp = fopen("/media/Study/PhoneDirectory.dat","rb");
if(fp == NULL)
printf("Error opening file!!!");
fseek(fp,0,SEEK_SET);
if(fread(&phoneList[1],sizeof(LISTING),1,fp)==1)
printf("%s %s",phoneList[1].name,phoneList[1].phone);
fclose(fp);
return 0;
}并写道:
//Write to file
#include<stdio.h>
typedef struct
{
char* name;
char* phone;
}LISTING;
int main(void)
{
LISTING phoneList[2];
FILE * fp = NULL;
fp = fopen("/media/Study/PhoneDirectory.dat","wb");
phoneList[1].name = "Santosh";
phoneList[1].phone = "9657681798";
if(fwrite(&phoneList[1],sizeof(LISTING),1,fp)==1)
printf("inserted");
fclose(fp);
return 0;
}发布于 2013-12-31 03:02:21
指针只有在它们产生的应用程序进程中才有意义。如果你将它们写到一个文件中,就像你在这里做的那样,你读回的值将是没有意义的--它们很可能指向未初始化的内存,或者指向正在被完全用于其他事情的内存。
您需要想出另一种将此数据写入文件的方法。
https://stackoverflow.com/questions/20845119
复制相似问题