乙個最容易忽略的問題scanf的結束條件以及返回值

2021-07-03 12:20:15 字數 827 閱讀 5960

scanf的返回值是正確輸入的引數個數。

scanf()函式接收輸入資料時,遇以下情況結束乙個資料的輸入:

(1)遇空格、「回車」、「跳格」鍵;

(2)遇寬度結束;

(3)遇非法輸入。

以下這段**:

int test() 

編譯後,輸入hello world!其結果是hello world!麼?如果回答是,那就大錯特錯了。字串中含有空格,是scanf的終止條件。所以這個輸出只能是hello。那麼怎麼才可以通過scanf輸入呢?這裡有一種%的格式控制法,具體如下:

%[scanfset]

scanfset

有兩種形式:

一種是以非

「^」字元開頭的

scanset ,

表示在讀入字串時將匹配所有在

scanfset

中出現的字元,遇到非

scanfset

中的字元時輸入就結束;

一種形式是以

「^「字元開頭的

scanfset,

表示在讀入字串時將匹配所有不在

scanfset

中出現的字元,遇到

scanfset

中的字元輸入就結束。

上面的**經過處理後就可以實現,字串中帶有空格輸入:

int test() 

關於 的乙個容易被忽略的問題

a 0,1,2,3,0,1,2 5 a 4 3 在一般來說,所有的使用者都知道元組一旦被建立就不可更改,除非用乙個新的元組來覆蓋它,但是上面的示例有了不同的反饋。執行之後得到了異常 typeerror tuple object does not support item assignment 在這個...

Bitmap使用容易被忽略的乙個小問題點

下面的 是存在問題的 matrix matrix new matrix matrix.setrotate 0.013558723994643297f log.d tag,isidentity matrix.isidentity bitmap bitmap bitmapfactory.decodere...

二分查詢容易忽略的乙個bug

對於二分查詢演算法,相信大家肯定不會陌生。演算法從乙個排好序的陣列中找指定的元素,如果找到了返回該元素在陣列中的索引,否則返回 1。下面給出了解法。a為排好序的陣列,n為陣列的大小,x為指定元素 int binarysearch int a,int n,int x return 1 乍看沒有錯誤,但...