2017-02-18 44 views
0

我是編程的絕對初學者,我從C語言開始。我正在用Dan Gookin編寫的C for Dummies開始編程fgets()將字符串分爲兩行

當用fgets()進行練習時,發生以下情況。

這是我的代碼

#include <stdio.h> 

int main() 
{ 
    char name[10]; 

    printf("Who are you? "); 
    fgets(name,10,stdin); 
    printf("Glad to meet you, %s.\n",name); 

    return(0); 
} 

預期的結果應與在最後一個句號的名稱和正在發生的事情是,句號延續到下一行如下所示。

enter image description here

我使用Unbuntu

代碼塊IDE
+2

[男人與fgets(https://linux.die.net/man/3/fgets) :「如果讀取換行符,它將被存儲到緩衝區中。」 – kaylum

+0

只需從'fgets'中刪除換行符? – RoadRunner

+0

請勿爲簡單文本輸出發佈圖像 - 包括問題中的文本輸出。將其視爲代碼。 –

回答

0

您可以使用strtok(name, "\n")

+1

如果用戶在按下回車鍵或按下Ctrl-D之前鍵入的字符多於8個字符,則會失敗。 – alk