問題:
對於我這種c語言菜鳥程式設計師來說,一碰到輸入第一想到的就是scanf,正是因為這樣在scanf裡吃了很多虧。好吧,這裡幫自己總結一下:
函式原型:
1
int
scanf
(
const
char
*format, ... );
scanf()函式是格式化輸入函式,它從標準輸入裝置(鍵盤) 讀取輸入的資訊。
其呼叫格式為: scanf("《格式化字串》",《位址表》);
函式 scanf() 是從
標準輸入流 stdio 中讀內容的通用
子程式,可以讀入全部固有型別的資料並自動轉換成機內形式。
1.問題一 本意是想輸入兩個字元,然後顯示出來,結果輸入g,然後回車,再想輸入下乙個字元時,程式執行結束。
#include
int main()
結果可以看到ch1吸收了g,ch2吸收了回車。
changjin.tong@sajs151-veriton-m288:~$ ./scanf g
g,changjin.tong@sajs151-veriton-m288:~$
2.問題二 把格式化從%c改為%s,結果就不一樣了。
#include
#include
int main()
結果:changjin.tong@sajs151-veriton-m288:~$ ./scanf gg
mmgg,mm
changjin.tong@sajs151-veriton-m288:~$
總結:1.程式的輸入都建有乙個緩衝區,即輸入緩衝區。一次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的資料存入輸入緩衝區。
2.接收字元時,回車也會被送到輸入緩衝區,被獲取緩衝區字元的函式取走。
3.接收字串時空格,與回車都是\0。
很牛的做法:scanf("%[^\n]",ch);加入正規表示式,這樣就方便了很多想用回車來區分不同輸入的程式設計師了。
C語言 scanf 函式
scanf 函式是用來從外部輸入裝置向計算機主機輸入資料的。scanf 函式的一般格式 案例 已知圓柱體的底半徑radius 1.5,高high 2.0,求其體積。main 案例 已知圓柱體的底半徑為radius,高為high,求其體積。功能 說明函式scanf 的格式及作用。main 程式執行結果...
C語言scanf函式
四 注意事項 編寫程式的主要目的就是為了處理資料。資料從 來?資料的 有很多種方式,如從磁碟檔案中讀取資料 從資料庫中讀取資料 從網頁中抓取資料等,還有一種原始的方式就是從鍵盤輸入資料。在c語言中,有三個函式可以從鍵盤獲得使用者輸入。getchar 輸入單個字元,儲存到字元變數中。gets 輸入一行...
C語言 scanf函式
1 scanf函式,是乙個標準的輸入函式 是乙個阻塞式的函式 當使用scanf的時候,程式會等待使用者輸入,如果不輸入內容,程式不再往下執行 作用 接收從鍵盤輸的的內容 2 使用格式 對比printf printf 格式控制字串 變數列表 scanf 格式控制字串 變數的 位址 列表 printf ...