trouble____maker 2022-04-09 12:18 采纳率: 100%
浏览 27
已结题

c语言debug与输出不符

debug都是正常的但一输出不一样了
想知道是哪里出了问题

img

/结构体定义/
typedef struct link_person {
char name[20];//姓名
char gender[6];//性别
int age;//年龄
char post[8];//职位
char password[8];//密码
char telephonenumber[11] ;//电话号
struct link_person* next;
}person;

person* setup(person* phead) {

FILE* fp0 = NULL;
FILE* fp1 = NULL;

fp0 = fopen("C:\\Users\\zhaoyue\\Desktop\\person.txt", "r");//初始表格
fp1 = fopen("C:\\Users\\zhaoyue\\Desktop\\person1.txt", "w");//数据文件

if (fp0 == NULL) //判断是否正常打开文件
{
    printf("读取表格失败\n\n");
    exit(0);
}
else
{
    printf("读取表格成功\n\n");
}

if (fp1 == NULL) //判断是否正常打开文件
{
    printf("打开目标文件失败\n\n");
    exit(0);
}
else
{
    printf("打开目标文件成功\n\n");
}

//链表初始化
person * p,* p0;
phead = (person*)malloc(sizeof(person));
phead->next = NULL;//例化
int i=0;
while (!feof(fp0))
{
    p = (person*)malloc(sizeof(person));
    fscanf(fp0, "%s %s %d %s %s %s\n", &p->name, &p->gender, &p->age, &p->post, &p->password, &p->telephonenumber);
    if(i==0) p0=phead=p;
    else
    {
        p->next=NULL;
        p0->next=p;
        p0=p;
    }
    i++;
}
p = phead;
while (p != NULL)
{
    fprintf(fp1,"%s %s %d %s %s %s\n",p->name, p->gender, p->age, p->post, p->password, p->telephonenumber);
    p = p->next;
}

fclose(fp0);
fclose(fp1);
return phead;

}

int main()
{
person* phead,*p;
phead=setup(phead);
p=phead;
printf("%s",phead->password);
return 0;
}

  • 写回答

1条回答 默认 最新

  • gitis 2022-04-09 12:28
    关注

    我猜測是沒有字符串結束符'\0', 所以被連續輸出了, 可以嘗試下char pwd[9] = {'\0'};
    沒有'\0', 所以pwd僅被視作字符數組而非字符串

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月29日
  • 已采纳回答 4月21日
  • 创建了问题 4月9日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)