用 scanf 讀取字串時的空白問題

| | 迴響 (1) | 引用 (0)


在純 C 的環境下,讀取字串並分存到不同變數時,經常會使用到 scanf...


不過 scanf 有些討厭的地方。一般常見的用法可能是:

char data[10];

printf("Enter some text : ");
scanf("%s", data);

scanf 就會將你輸入的資料依照你所設定的「%s」格式丟到變數 data 裡面去。

但是這時候問題就來了,如果你輸入的資料中間含有空白字元時,
例如「my ass」-噹噹,data 的內容就只剩下「my」了。

這當然不是我們所樂見的結果,scanf 的多事造成了我們的困擾...
不過沒關係,根據 google 偷偷告訴我,這症頭可以這樣解:

scanf("%[^\n]", data);

夠簡單吧!好,打完收工。


參考資料:
c語言學習零碎整理(10):探討scanf函數 - wayne 我的陋室我做主 - CSDNBlog


這篇屁話被收在分類:

0 則引用

本篇屁話的引用連結 : http://thecrap.org/mt-tb.cgi/382

引用 用 scanf 讀取字串時的空白問題 的文章如下 :

1 則迴響

Eddy 說:

好久不見的scanf啊

給我一點 tempo

About

這篇屁話是由 Alvin Wu 發表於 April 18, 2008 2:55 PM

上一篇是 六一倒了

下一篇是 Spring Scream 2008

首頁 可以找到最近的屁話,或是到 彙整 去看全部的屁話紀綠

Powered by Movable Type 4.23-en