簡體   English   中英

使用struct和strcpy,程序崩潰

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM