2011-07-28 47 views
2

我試圖從用戶掃描1-3個字到一個字符串。但是,只有第一個字會被掃描。如何將空格掃描爲字符串?

+0

發佈你正在做的事情的代碼。 – Mahesh

+0

scanf(「%s」,area); – Brianna

+0

在這裏使用搜索功能。 ** scanf **上有多少帖子 - http://stackoverflow.com/questions/tagged/scanf – adatapost

回答

3
scanf("%s", &area) ; 

scanf當遇到空格時停止從流中讀取數據。您需要改用getline

+2

scanf()也是安全漏洞的巨大來源。 getline()不僅更有效,而且更安全。 –

3

一種可能性是使用掃描集轉換而不是一個字符串轉換:

char buffer[256]; 
scanf("%255[^\n]", buffer); 

就像fgets,此讀取到行而不是在所述第一空白字符停止的結束。

+0

+1。注意這不是標準C中的。 –

+0

@BillyONeal:實際上,掃描集*是標準C的一部分(例如,C99中的7.19.6.2/12,C89/90中的7.9.6.2) - 絕對不是最着名的部分,但仍然存在。 –

+0

我糾正了。 –