标题:我想建一个通讯录的程序,可是书上的这个程序为什么运行不了。
只看楼主
学习困难户
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-5-16
结帖率:50%
已结贴  问题点数:20 回复次数:18 
我想建一个通讯录的程序,可是书上的这个程序为什么运行不了。
#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);
}
搜索更多相关主题的帖子: address include 通讯录 结构体 
2014-06-09 12:28
学习困难户
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-5-16
得分:0 
求大神修改一下并原,谢谢。
2014-06-09 12:32
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
得分:3 
只贴代码不说问题,能编译通过吗?如果编译不通过,说明是你代码有错误,如果编译通过达不到你想要的效果,就是你程序的设计问题!

我不是砖家,要努力成为砖家。
2014-06-09 12:58
学习困难户
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-5-16
得分:0 
我这是按照一本参考书上的代码写下来的,书上说可以运行但是我运行不起来,问题是 编写一个通讯录,该程序具有以下功能
(1)从键盘上输入每个人员的姓名,年龄,职业,通讯地址和电话,并将它们以通讯录文件(文本文件)形式存在盘上。
(2)输出通讯录文件,即显示通讯录中全体人员信息。
您看怎么解决?
2014-06-09 17:40
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:3 
addrl[3],addr2[3];
    ^
我怎么感觉这里应是1

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);
这里面的变量没定义

不知道楼主是打哪里抄来的代码 是没抄对 还是书错了?
2014-06-09 17:52
张小齊
Rank: 2
等 级:论坛游民
帖 子:14
专家分:46
注 册:2014-5-23
得分:3 
抄书也要仔细点:addrl[3],addr2[3];1(一):抄成:l(L)

addr[i].name,addr[i].sex,addr1[i].age,addr[i].work,addr[i].tel,addr[i].home时有时没有????

。。。。。。。。。
2014-06-09 17:53
学习困难户
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-5-16
得分:0 
没抄错,书上就是这么写的,难道是那本书坑了我
2014-06-09 17:54
学习困难户
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-5-16
得分:0 
额,也有可能,我是困难户嘛,大家多担待一点,谢谢各位了
2014-06-09 17:55
学习困难户
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-5-16
得分:0 
大家看我还有哪里错了,该怎么改?哎,我遇到这种事不是一次两次了
2014-06-09 17:57
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:0 
以下是引用学习困难户在2014-6-9 17:55:34的发言:

额,也有可能,我是困难户嘛,大家多担待一点,谢谢各位了

困难不可怕 可怕的是以下两个

1. 找不到问题的所在
2. 不努力
2014-06-09 17:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-432675-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.491145 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved