标题:为什么输入id后 程序就会卡死呢呢??
只看楼主
a15022606145
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2015-7-11
 问题点数:0 回复次数:1 
为什么输入id后 程序就会卡死呢呢??
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Account
{
    unsigned int id;
    char citizen_id[19];
    char name[32];
    char address[128];
    unsigned int balance; // 余额

    Account* next; 
};

int intput(Account * p)
{
    printf("ID:\n");
    scanf("%d\n",p->id);
    printf("身份证:\n");
    scanf("%s\n",p->citizen_id);
    if(sizeof(p->citizen_id)!=18)
        return 0;
    printf("name:\n");
    scanf("%s\n",p->name);
    printf("adress:\n");
    scanf("%s\n",p->address);
    printf("balance:\n");
    scanf("%d\n",p->balance);
    return 0;
}

int main()
{
    Account * a = (Account *)malloc(sizeof(Account));
    if(intput(a))
    {
        printf("输入成功\n!");
    }
    else
    {
        printf("输入失败\n!");
    }
    free(a);
    return 0;
}



这是一个函数 ,为结构体赋值
搜索更多相关主题的帖子: 输入 int char printf scanf 
2018-08-25 18:06
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Account
{
    unsigned int id;
    char citizen_id[19];
    char name[32];
    char address[128];
    unsigned int balance; // 余额

    Account* next;
}A;

bool intput(Account * p)
{
    printf("ID:\n");
    scanf("%d",&p->id);//不加\n  ,以下scanf都有这个错误
   
    printf("身份证:\n");
    scanf("%s",p->citizen_id);
    if(strlen(p->citizen_id)!=18)//strlen返回的是数组长度,sizeof是所占的内存空间的大小,不受里面存储的内容影响;用sizeof会使函数总是返回false,导致输入失败,执行:printf("输入失败!\n");
        return false;
   
    printf("name:\n");
    scanf("%s",p->name);
   
    printf("adress:\n");
    scanf("%s",p->address);
   
    printf("balance:\n");
    scanf("%d",&p->balance);
    return true;
}

int main()
{
    A *a = (A *)malloc(sizeof(A));
    if(intput(a))
    {
        printf("输入成功!\n");
    }
    else
    {
        printf("输入失败!\n");
    }
    free(a);
    return 0;
}

[此贴子已经被作者于2018-8-25 19:05编辑过]

2018-08-25 19:02



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




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

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