Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c中显示结构中的数字和字符串 #包括 #包括 结构目录{ 字符名; 长整数; 内特房号; 查街;; }; 内部主(空) { 结构目录联系人; 结构目录*answer1、*answer2、*answer3、*answer4; 答案; printf(“欢迎使用电话号码簿。\n\n请输入联系人的姓名。\n”); scanf(“%s”、&contact.Name); printf(“请输入联系人的号码。\n”); scanf(“%ld”、&contact.Number); printf(“请输入联系人的地址。\n”); scanf(“%d%s”、&contact.HouseNumber、&contact.street); 回答1=&contact; 回答2=&联系; 回答3=&联系; 回答4=&联系; printf(“您想获取您的联系人信息吗?输入‘是’或‘否’。\n”); scanf(“%s”和“应答”); if(strcmp(&回答“是”)==0{ printf(“%s\n”,&answer1->Name); printf(“%ld\n”,应答2->Number); printf(“%d”,答案3->门牌号); printf(“%s”、&answer4->street); } if(strcmp(&回答“否”)==0){ printf(“感谢您使用电话簿。\n”); } }_C - Fatal编程技术网

在c中显示结构中的数字和字符串 #包括 #包括 结构目录{ 字符名; 长整数; 内特房号; 查街;; }; 内部主(空) { 结构目录联系人; 结构目录*answer1、*answer2、*answer3、*answer4; 答案; printf(“欢迎使用电话号码簿。\n\n请输入联系人的姓名。\n”); scanf(“%s”、&contact.Name); printf(“请输入联系人的号码。\n”); scanf(“%ld”、&contact.Number); printf(“请输入联系人的地址。\n”); scanf(“%d%s”、&contact.HouseNumber、&contact.street); 回答1=&contact; 回答2=&联系; 回答3=&联系; 回答4=&联系; printf(“您想获取您的联系人信息吗?输入‘是’或‘否’。\n”); scanf(“%s”和“应答”); if(strcmp(&回答“是”)==0{ printf(“%s\n”,&answer1->Name); printf(“%ld\n”,应答2->Number); printf(“%d”,答案3->门牌号); printf(“%s”、&answer4->street); } if(strcmp(&回答“否”)==0){ printf(“感谢您使用电话簿。\n”); } }

在c中显示结构中的数字和字符串 #包括 #包括 结构目录{ 字符名; 长整数; 内特房号; 查街;; }; 内部主(空) { 结构目录联系人; 结构目录*answer1、*answer2、*answer3、*answer4; 答案; printf(“欢迎使用电话号码簿。\n\n请输入联系人的姓名。\n”); scanf(“%s”、&contact.Name); printf(“请输入联系人的号码。\n”); scanf(“%ld”、&contact.Number); printf(“请输入联系人的地址。\n”); scanf(“%d%s”、&contact.HouseNumber、&contact.street); 回答1=&contact; 回答2=&联系; 回答3=&联系; 回答4=&联系; printf(“您想获取您的联系人信息吗?输入‘是’或‘否’。\n”); scanf(“%s”和“应答”); if(strcmp(&回答“是”)==0{ printf(“%s\n”,&answer1->Name); printf(“%ld\n”,应答2->Number); printf(“%d”,答案3->门牌号); printf(“%s”、&answer4->street); } if(strcmp(&回答“否”)==0){ printf(“感谢您使用电话簿。\n”); } },c,C,我正在尝试用C语言制作一个联系人程序。我希望该程序能够打印用户的住址。我在结构中有“HouseNumber”变量和“street”变量,将“answer3”设置为int变量以显示“HouseNumber”,将“answer4”设置为char变量以显示“street”。我希望他们一起用一个字符串打印用户的地址,但当我运行程序并输入“是”以在输入门牌号和街道后显示联系人信息时,程序崩溃,显示lldb时出现错误线程。看起来一切都是对的,因为我的编译器说代码没有问题,但它崩溃了。谁能帮我一下吗 #inc

我正在尝试用C语言制作一个联系人程序。我希望该程序能够打印用户的住址。我在结构中有“HouseNumber”变量和“street”变量,将“answer3”设置为int变量以显示“HouseNumber”,将“answer4”设置为char变量以显示“street”。我希望他们一起用一个字符串打印用户的地址,但当我运行程序并输入“是”以在输入门牌号和街道后显示联系人信息时,程序崩溃,显示lldb时出现错误线程。看起来一切都是对的,因为我的编译器说代码没有问题,但它崩溃了。谁能帮我一下吗

#include <stdio.h>
#include <string.h>

struct Directory {
    char Name;
    long int Number;
    int HouseNumber;
    char street;
};

int main(void)
{
    struct Directory contact;
    struct Directory *answer1, *answer2, *answer3, *answer4;
    char answer;

    printf("Welcome to Telephone Directory.\n\nPlease enter the name of the contact.\n");
    scanf("%s", &contact.Name);

    printf("Please enter the number of the contact.\n");
    scanf("%ld", &contact.Number);

    printf("Please enter the address of the contact.\n");
    scanf("%d %s", &contact.HouseNumber, &contact.street);

    answer1 = &contact;
    answer2 = &contact;
    answer3 = &contact;
    answer4 = &contact;

    printf("Would you like to obtain information on your contact? Enter 'yes' or 'no'.\n");
    scanf("%s", &answer);


    if (strcmp(&answer, "yes")==0) {
        printf("%s\n", &answer1->Name);
        printf("%ld\n", answer2->Number);
        printf("%d", answer3->HouseNumber);
        printf("%s", &answer4->street);
    }

    if (strcmp(&answer, "no")==0) {
        printf("Thank you for using Telephone Directory.\n");
    }

}
内干管:

struct Directory {
    char * Name;
    long int Number;
    int HouseNumber;
    char * street;
};
然后您可以以您的姓名/街道等进行复制。
因为Name是char*,所以不使用地址,只需将指针传递给scanf即可。这将用用户输入的字符串填充malloc的内存

当您执行
scanf(“%s”和&answer)时

您正在将用户的输入写入
char答案scanf的参数需要有足够的空间来容纳整个字符串加上一个空字节。尝试以下方法:

struct Directory Contact;
Contact.Name = malloc(sizeof(char * sizeOfName));

 scanf("%s", contact.Name);
这假设输入永远不会超过256个字符,但在这样一个简单的程序中似乎是合理的。请注意,gcc支持非标准的
%a
,如果您传入
char*
,它将为您分配一个字符串


当你试图存储字符串时,你需要确保有足够的空间来存储你放在那里的数据,比如在字典中只保存一个字符,否则你将溢出,并在以后可能需要的其他内存上跺脚。

我在你的代码中观察到的错误是,你创建了名称,street和answer变量为char,但试图使用%s在其中存储字符串,导致崩溃。在这些地方,您必须使用char*或character数组

char answer[256];
修改后的代码如下所示

    char *name //(or) char name[15]
#包括
结构目录{
字符名[20];
长整数;
内特房号;
查尔街[20];
}; 
int main(int argc,char*argv[])
{ 
结构目录联系人;
结构目录*answer1、*answer2、*answer3、*answer4;
答案[4];
printf(“欢迎使用电话号码簿。\n\n请输入联系人的姓名。\n”);
scanf(“%s”,联系人名称);
printf(“请输入联系人的号码。\n”);
scanf(“%ld”、&contact.Number);
printf(“请输入联系人的地址和街道。\n”);
scanf(“%d%s”、&contact.HouseNumber、contact.street);
回答1=&contact;
回答2=&联系;
回答3=&联系;
回答4=&联系;
printf(“输入是或否”);
scanf(“%s”,答案);
如果(strcmp(回答“是”)==0{
printf(“%s\n”,应答1->Name);
printf(“%ld\n”,应答2->Number);
printf(“%d\n”,应答3->HouseNumber);
printf(“%s”,回答4->street);
} 
否则{
printf(“感谢您使用电话簿。\n”);
} 
返回0;
}

您的姓名必须超过1个字符。将“字符串”设置为char*,或使用字符串库。然后在每个结构中,您必须为字符串指定malloc size,并使用结构中的指针指向分配的内存。您的结构是错误的。它包含名称和街道的字符,而不是字符串。您应该将其设置为字符数组(即char Name[256]),或者将其设置为char*指针,然后在分配时使用malloc。
      #include <stdio.h> 
      struct Directory { 
      char Name[20]; 
      long int Number; 
      int HouseNumber; 
      char street[20]; 
      }; 


    int main(int argc, char *argv[]) 
    { 
        struct Directory contact; 

        struct Directory *answer1, *answer2, *answer3, *answer4; 

        char answer[4]; 

        printf("Welcome to Telephone Directory.\n\nPlease enter the name of the                                          contact.\n"); 

        scanf("%s", contact.Name); 

        printf("Please enter the number of the contact.\n"); 

        scanf("%ld", &contact.Number); 

        printf("Please enter the address and street of the contact.\n"); 

       scanf("%d %s", &contact.HouseNumber, contact.street); 

       answer1 = &contact; 

      answer2 = &contact; 

      answer3 = &contact; 

      answer4 = &contact; 

      printf("Enter yes r no"); 

      scanf("%s",answer); 

      if (strcmp(answer,"yes")==0) { 

        printf("%s\n", answer1->Name); 

        printf("%ld\n", answer2->Number); 

        printf("%d\n", answer3->HouseNumber); 

        printf("%s", answer4->street); 

     } 


    else { 

        printf("Thank you for using Telephone Directory.\n"); 
    } 

   return 0; 
    }