[英]Using struct and strcpy, program crashes
你好,這是我第一次在這個網站上發帖,我也不是很熟悉結構或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);
}
該程序的目的基本上是接受名稱和電子郵件作為輸入,並將其放在結構的名稱和電子郵件中,然后使用結構打印它們。 現在程序編譯並允許我接受輸入但在此之后它崩潰了,我不知道為什么。 有誰知道崩潰發生的原因?
問題在於
printf('%s',x.name);
printf('%s',x.email);
根據printf()
格式,
int printf(const char *format, ...);
fisrt參數是一個const char *
。 所以,你需要寫
printf("%s",x.name);
printf("%s",x.email);
那說,
void main()
應該是int main(void)
,至少要符合標准。 fgets()
將尾隨換行符(如果有fgets()
掃描並存儲到輸入緩沖區作為輸入的一部分。 您可能希望在復制緩沖區之前將其剝離。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.