2013-04-06 66 views
0

我想從用戶讀取文本行,但fgetsprintf("Enter a string:");程序終止後無法正常工作,並且沒有機會輸入任何內容。如何從stdin讀取一行

fgets(string, 100, stdin) 
+1

某些代碼可能會有所幫助。 – 2013-04-06 15:20:54

+0

曾嘗試scanf(「%[^ \ n]」,aaa);其中aaa是你的字符變量 – Satya 2013-04-06 15:21:27

+0

我的調試水晶球告訴我'string'被聲明爲'char * string;'(這是我發佈「代碼」後不得不繼續編譯的所有內容)。考慮提供一個真正的字符緩衝區,而不僅僅是一個不確定的指針。 – WhozCraig 2013-04-06 16:19:59

回答

1

這裏是你如何能做到這:

char mystr[100]; 
if (fgets (mystr, 100 , stdin) != NULL) { 
    puts (mystring); 
} 

你爲了這個編譯需要#include <stdio.h>

第一個指針必須指向一個足夠大小的內存塊以適應第二個指針中傳遞的字符數。

+1

'sizeof(mystr)'而不是硬編碼函數調用中的值'100'? – 2013-04-06 15:25:10

+2

*'#include ' – 2013-04-06 15:25:20