При использовании 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()
сканирует и сохраняет завершающий символ новой строки (если есть) во входном буфере как часть ввода. Вы можете удалить его перед копированием буфера.