【发布时间】:2013-12-30 17:46:22
【问题描述】:
我尝试使用结构中的指针写入和读取文件。但是当我从文件中读取时,我看到了一些垃圾值。我在 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;
}
【问题讨论】:
-
第 1 个不写文件:不写指针...
-
@user101285 这将是您迁移到 Stack Overflow 的第二个问题。请阅读每个站点上的help center,以熟悉两者之间的区别——它将帮助您更快地获得更好的答案。
-
你到底想在这里写什么?