scanf和[]
由于默認狀態在用scanf接受字符串時,會以空格和回車作為結束符。
如何讓scanf接受空格?
那就用scanf("%[^\n]s",str);這個語句吧。
^表示非,也就是[]中的東西在起作用,^\n表示,只要是非回車,就全部接收,所以,這個功能還有下面的用法
scanf("%[Hoj]s",str);
如果input: Hoiabjo
那么str中字符,將是Hojo. 也就是說,只接受Hoj三種字符。
如果只輸入數字,那么可以用[0-9],而不需要[0123456789]
但是這種用法不能和while結合起來用,不然就會出現錯誤了。為什么?我也不知道。
View Code
#include "iostream" #include "string" #include "cstdio" #include "cstring" using namespace std; int main() { char str[100]={0}; scanf("%[^\n]s", str); printf("%s\n", str); }
posted on 2012-04-20 15:24 More study needed. 閱讀(210) 評論(0) 收藏 舉報

浙公網安備 33010602011771號