簡體   English   中英

C - 實踐 - 結構和 Function - 輸入錯誤

[英]C - Practice -Structs and Function - input error

我正在使用結構和函數練習 C。 當我要求用戶輸入有關書籍的信息時,代碼運行良好,直到我要求輸入出版商名稱,這里我總是得到返回 EXIT_FAILURE 無論輸入是什么。 我認為我在scanf中編寫變量的方式出現了一些錯誤,因為它是另一個結構中的結構,我仍然不能完美地理解這個問題。

下面是代碼(它不完整):

#define MAXB 2
#define MAXSTR 100

typedef struct date // publication date
{
 int day, month, year;   
    
}DATE;

typedef struct authors
{
    char authorName[MAXSTR];
    char authorwebp[MAXSTR];
    DATE birthDate;
}AUTHOR;

typedef struct publishers
{
    char publisherName[MAXSTR];
    char publishAddress[MAXSTR];
}PUBLISHER;

typedef struct books
{
    char title[MAXSTR];
    char type[MAXSTR];
    PUBLISHER publisher;
    AUTHOR author[5];
    DATE publishDate;
}BOOK;

void add_book( BOOK *b )
{
if (scanf(" %[^\n]s", b->publisher.publisherName) !=1);  // always getting EXIT_FAILURE
            return EXIT_FAILURE;
}
int main()
{
    BOOK b[MAXB];
    add_book(b);
}

預先感謝您的幫助。

"if (scanf(" %[^\n]s", b->publisher.publisherName);=1); <-去掉分號"

@ser3121023、@Luke_ 和 @Alejandro Montilla 回答了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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