标题:为什么最后输出的总是乱码.
取消只看楼主
budong998
Rank: 2
等 级:论坛游民
帖 子:25
专家分:15
注 册:2010-7-18
结帖率:75%
已结贴  问题点数:10 回复次数:0 
为什么最后输出的总是乱码.
学习中,写一个出来,输出时最后总是乱码.如下图.大家帮忙看看哪里有问问题.

程序代码:
#include<stdio.h>
#include<string.h>
#define PH struct phone_book
FILE *fp;
static struct phone_book
{
    char name[20],mail[30],add[50];
    int num[15],num1[15],num2[15];
    struct phone_book *next;
};
PH *put()
{
    PH *p1,*p2,*p;
    int i=0;
    printf("key \"q\" to exit\n");
    while(getch()!='q')
    {  
        p2=(PH *)malloc(sizeof(PH));
        printf("input name,mail,add,num:\n");
        scanf("%s%s%s",p2->name,p2->mail,p2->add);
        scanf("%s%s%s%%s%s%s",p2->num,p2->num1,p1->num2);
        if(i==0)
        {
            p1=p=p2;p->next=0;
        }
            else
        {
        p1->next=p2;
        p2->next=0;
        p1=p2;
        }
    i++;
    }
    return p;
}
main()
{
    PH *p;
    p=put();
    if((fp=fopen("e:\\phone_book.txt","at+"))==NULL)
    {
        printf("open the files error,press any key exit!\n");
        getch();exit(1);
    }
    while(p!=0)
    {
        fprintf(fp,"姓名\t\t\t 邮箱\t\t\t\t地址\n");
        fprintf(fp,"%s\t%s\t%s\n",p->name,p->mail,p->add);
        fprintf(fp,"电话\t\t电话1\t\t电话2\n");
        fprintf(fp,"%s\t%s\t%s\n\n",p->num,p->num1,p->num2);
        p=p->next;
    }
    fclose(fp);
    getch();
}
搜索更多相关主题的帖子: 学习 
2011-01-04 14:50



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




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

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