我想建一个通讯录的程序,可是书上的这个程序为什么运行不了。
#include"stdio.h" struct address /*建立一结构体存放通讯人得信息*/
{
char name[10]; /*通讯人的姓名*/
char sex[20]; /*通讯人的性别*/
char age[20]; /*通讯人的年龄*/
char work[20]; /*通讯人的职业*/
char tel[20]; /*通讯人的电话*/
char home[20]; /*通讯人的住址*/
}addrl[3],addr2[3];
void main()
{
int i;
FILE *fp; /*建立文件指针*/
fp=fopen("address","wb");/*以写的形式写入文件当中*/
if(fp==NULL) /*指针为空是将不能写入*/
{
printf("can not write!");
return;
}
printf("putin name sex age work tel home:\n");/*输入通讯人的信息*/
for(i=0;i<3;i++)/*循环通讯人的信息*/
{
scanf("%s %s %s %s %s %s",addr[i].name,addr[i].sex,addr1[i].age,addr[i].work,addr[i].tel,addr[i].home);
fwrite(&addr1[i],sizeof(struct address),1,fp);
/*输入通讯人的姓名,性别,年龄,职业,通讯地址和电话*/
}
fclose(fp);/*关闭文件指针*/
fp=fopen("address","rb");/*读取通讯录人的信息*/
if(fp==NULL)/*如果没有信息输出输出 can not read*/
{
printf("can not read!");
return;
}
for(i=0;i<3;i++)/*依次打印所输入的通讯人的信息*/
{
fread(&addr2[i],sizeof(struct address),1,fp);/*一个字节的形式读取文件内容*/
}
printf("you putin:\n");
for(i=0;i<3;i++)/*依次打印出通讯人的信息*/
{
printf("%s %s %s %s %s %s\n",addr2[i].name,addr2[i].sex,addr2[i].age,addr2[i],work,addr2[i].tel,addr2[i].home);
}
fclose(fp);
}