При использовании struct и strcpy происходит сбой программы

Здравствуйте, это мой первый пост на этом сайте, а также я не очень знаком со структурами или с strcpy() Мне было интересно, почему моя программа ниже падает.

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

struct Employee{
    char name[30];
    char email[30];
};

void main(){
    struct Employee x;
    char employee_name[30];
    char employee_email[30];

    printf("enter the employees's name\n");
    fgets(employee_name,30,stdin);
    strcpy(x.name, employee_name);

    printf("enter the employee's email\n");
    fgets(employee_email,30,stdin);
    strcpy(x.email,employee_email);

    printf('%s',x.name);
    printf('%s',x.email);
}

Цель программы состоит в том, чтобы принять имя и адрес электронной почты в качестве входных данных и ввести их в имя и адрес электронной почты структуры, а затем распечатать их, используя структуру. Теперь программа компилируется и позволяет мне принимать данные, но после этого происходит сбой, и я не знаю почему. Кто-нибудь знает, почему происходит сбой?

1 ответ

Вопрос с

printf('%s',x.name);
printf('%s',x.email);

в соответствии с printf() формат,

int printf(const char *format, ...);

первый аргумент const char *, Итак, вам нужно написать

printf("%s",x.name);
printf("%s",x.email);

Это сказало,

  • void main() должно быть int main(void) По крайней мере, чтобы соответствовать стандартам.
  • fgets() сканирует и сохраняет завершающий символ новой строки (если есть) во входном буфере как часть ввода. Вы можете удалить его перед копированием буфера.
Другие вопросы по тегам