對scanf函式的進一步認識

2021-06-21 20:07:29 字數 1445 閱讀 2889

1.scanf函式的原型

int scanf(char const  *format,...)

scanf從標準輸入stdin讀取格式化字串,當字串到達末尾或者讀取的輸入不再匹配格式字串所指定的型別,輸入就停止。在任何一種情況下被轉換的輸入值的數目作為函式的返回值返回。

2.scanf函式的format引數:"d%d\t  \n"

空白字元:

空白字元為(空格、跳格鍵(tab)、回車鍵),它們與輸入中任意的一種或者多種空白字串匹配,空白字元被從緩衝區中讀取出來並作丟棄處理,一直讀取到非 空白字元為止。scanf("%d\t\n") 則輸入乙個數字後,再輸入多個空格回車等空格鍵後然提示輸入,那麼直到輸入其他字元並遇到\n或eof為止。

格式**:

它們指定函式如何解釋輸入的字元。

其他字元:

當任何其他的字元出現在格式**字串中,輸入字元必須與它匹配。如果不匹配,將不再讀取,直接返回,同時將此不匹配字元繼續儲存在緩衝區中。

對於有多個格式字元讀取的(eg:scanf("%d%d",%m,%n)),匹配完第乙個格式字元輸入,如果不符合則第乙個格式字元對應的第乙個變數未讀取任何輸入,則保持原值,而輸入繼續匹配餘下的格式字元直到所有的格式字元均已做出匹配為止。其中在匹配開始就遇到不符合格式字元的空白字元均作丟棄處理,不再保留在緩衝區。

3.返回值

int ,成功讀取到格式**值個數。

4.舉例說明

gets遇到eof或者\n停止讀取,並將\n或者、eof轉換為'\0'。printf函式對%s輸出也是遇到'\0'停止輸出。

在對應格式的輸入中,表示整體輸入結束,都要enter,也就是'\n'來表示輸入終止,可以用getchar()或者gets獲取。

5.再說一點不相關的

scanf("%d%d",&a[i++],%a[i++]);

不同的編譯器執行的順序不同,有可能從右到左,一般對於有***的i++等分開來寫。先後輸入1,2,可能對應的是2,1。

scanf("%s",&a[i++]);

scanf("%s",&a[i++]);

參考:

進一步了解scanf函式!!!

對於這個函式scanf 一開始學習c語言的起步的時候,我們就一直學習,無論是,過去,現在,還是未來,我們都將 使用和運用他,但是這幾天的發現,我對於這個函式有了進一步的認識,就像是一本 在讀了她千遍之後也會 對他的理解力有了進一步的提公升。scanf 函式 標頭檔案 stdio.h 函式的宣告 in...

溝通,需要進一步認識

溝通,是建立人際關係的橋梁,如果這個世界缺少了溝通,那將是乙個不可想象的世界。可 以這樣說,沒有溝通就沒有人際的互動關係,人與人之間關係,就會處在僵硬 隔閡 冷漠的狀態,會出現誤解 扭曲的局面,給工作和生活帶來極大的害處。資訊 時代的到來,工作 生活節奏越來越快,人與人之間的思想需要加強交流 社會分...

進一步認識HTML(二)

第一種情況 第二種情況 第三種情況 html 三種展示結果如下 當輸入位址出錯時,可用佔位符alt 來介紹資訊 alt 這是帥氣的林志穎和kimi 當滑鼠移動到位置時,則會出現乙個提示。提示符title 做提示 title 這是帥氣的林志穎和kimi 二 標籤 target 三 表單標籤 get p...