字元型的輸入問題

2022-08-22 01:42:18 字數 569 閱讀 5412

在用scanf乙個乙個讀入字元的時候 常常會需要防止空格和回車的讀入。廣泛使用的有三種解決方法。

1.scanf("%c\n",&ch)

在scanf裡 \n 很特別的,不是要求輸入乙個回車換行

引用一下別人的說法:

過濾空格、製表符、回車等輸入,也就是說

scanf(「%c\n」, &i);

printf(「%c\n」, i);

你輸入乙個數後,它是不會立即顯示的,要等再接收到乙個非(空格、製表符、回車)的輸入scanf語句才結束。

但請注意的是,最後輸入的那個非(空格、製表符、回車)的東西是不會被這個scanf讀進來的,而是留在輸入流裡。

這種方法在具體問題的時候,輸入完最後乙個字元的時候,需要輸入乙個其他的字元才能返回最終結果(弱菜表示不懂,這個為什麼也能ac)

2.getchar();

這個方法能夠清除緩衝區中 單個的空格或者回車,但是不能處理連續的

3.scanf(" %c",&ch);

在%前加乙個空格,這樣的話scanf會過濾掉所有的空格、製表符和換行符。

從中可以看出,第三種是最優的處理辦法

QLineEdit設定浮點型數字輸入問題

qt中qlineedit如果想設定整數,可以使用qintvalidtor 例如ui.k1edit setvalidtor new qintvalidtor 10,100,this 但不支援輸入浮點型輸入,需要使用qregexp正規表示式。需要注意的是,需要將settext函式放置在setvalidt...

用getchar和 C輸入字元型資料

標籤 空格分隔 c 雙學位高階語言程式設計 c輸入輸出 getchar函式的輸入模式,是以回車鍵為結束標誌,將回車之前的所有資料都放入緩衝區中,每進行一次賦值,就呼叫緩衝區內的乙個字元。如果輸入字元比賦值字元少,那會把回車也算作字元。鍵盤上的一切輸入內容,包括空格回車,都能被輸入其中。而用 c輸入資...

用getchar和 C輸入字元型資料

標籤 空格分隔 c 雙學位高階語言程式設計 c輸入輸出 getchar函式的輸入模式,是以回車鍵為結束標誌,將回車之前的所有資料都放入緩衝區中,每進行一次賦值,就呼叫緩衝區內的乙個字元。如果輸入字元比賦值字元少,那會把回車也算作字元。鍵盤上的一切輸入內容,包括空格回車,都能被輸入其中。而用 c輸入資...