輸入函式對比

2021-07-25 20:19:53 字數 3100 閱讀 8900

(0)      函式原型:int scanf(const char * restrict format,...);

(1)      返回值:返回成功讀入的資料項數,注意是資料項數;例如scanf(「%d %d」, &a, &b),如果a、b都被讀入則返回2,如果只有a被讀入則返回1。

(2)      標準的庫函式,包含在#include 中。

(3)      讀字元規則:scanf函式不檢測讀入的字元的個數。僅僅是不斷的從標準輸入流(鍵盤)中讀入字元,直到遇到「空白符」(換頁符、縱向製表符、橫向製表符('\t')、空格(' ')、換行符('\n')、回車符('\r'))。

(0)函式原型:char *fgets(char *buf, int bufsize, file *stream)  char * gets ( char * buf )。

(1)返回值:如果正常則是返回與引數buf相同的指標。

(2)標準的庫函式,包含在#include ,gets包含在#include 中。

(3)兩者區別在於:fgets由於有引數bufsize的限制,所以會更加安全,另外各自的讀取字元規則也有較大的區別,詳見下述。

(4)讀字元規則:對於fgets,讀取一行資料,包括回車。如果該行內容不足bufsize個字元,則正常結束,如果該行內容超過bufsize-1個字元,則fgets只返回乙個不完整的行。緩衝區殘留內容會在下一次重新被fgets讀取,當然如果沒有手動重新fgets可能就會被丟棄。對於gets函式,讀取一行資料,直到輸入回車才返回,且不會儲存回車,所有除回車以外的資料會被儲存在指定的緩衝區中。注意這裡是最多10個位元組

(5)程式示例,如下所示。

//keyboard input "01234567890123\n"

//output "012345678"  //10

表示的最多接收

9個字元

//        "90123"//

這個是使用者輸入的回車字元

//        "" //

回車,printf

的回車//        「 」 //

游標所在位置

char buf[10]

=;

while (fgets(buf,10,stdin))

//keyboard input "01234567890123\n"

//output "01234567890123"   //

回車,printf

的回車//        "" //

游標所在位置

char buf[20]

=;

while (gets(buf))

(0)函式原型:int getc(file *stream)   int intgetc(file *stream)。(1

)返回值:讀取的字元。(2

)標準的庫函式,包含在#include。(3

)兩者區別在於:

fgetc

是函式,而

getc

是基於fgetc

實現的巨集。對比分析在於

2點,首先

getc

是基於巨集沒有函式呼叫,所以理論上會更高效,沒有堆疊的呼叫約束,但是如果在暫存器充足的情況,這種差別可以忽略。其次,

getc

因為是巨集,所以也需要注意巨集的***。綜上,建議使用

fgetc。(

4)讀字元規則:等待使用者輸入,直到按下回車才結束,此時把緩衝區的內容逐個顯示,包括回車字元。(5

)程式示例,如下所示。

//keyboard input "abc\n"

//output " -- a"

//        " -- b"

//        " -- c"

//        " --  " //

回車,這個是使用者輸入的回車字元

//        "      " //

多出乙個空行,是

printf

裡的回車

while

(ch=getc())

//keyboard input "abc\n"

//output " -- a"

//        " -- b"

//        " -- c"

//        " --  " //

回車,這個是使用者輸入的回車字元

//        "      " //

多出乙個空行,是

printf

裡的回車

while

(ch=fgetc())

(0)       函式原型:int getch(void)

int getche(void) 

(1)      返回值:讀取的字元;

(2)      這兩個不是c標準庫函式,需要#include 。為了程式可移植性不推薦使用;

(3)      兩者區別在於getch不帶回顯,而getche是帶回顯的。

(4)      讀字元規則:等待使用者從鍵盤輸入,使用者一旦按下按鍵,無論是否包含回車,函式都會返回。

(5)      程式示例,如下所示。

//keyboard input "abc"

//output " -- a"

//        " -- b"

//        " -- c"

while

(ch=getch())

//input "abc"

//output "a -- a"

//        "b -- b"

//        "c -- c"

while

(ch=getche())

SYBASE ORACLE函式對比

oracle取系統時間用 select sysdate from dual 查詢語句。sybase取系統時間用 select getdate 查詢語句。oracle的 select decode ipaddressb,null,ipaddressb from res 語句,對應sybase的 sel...

strstr函式的對比

程式設計師面試寶典上有道題目 請寫寫乙個函式模擬c 中的strstr 函式。strstr 函式搜尋乙個字串在另乙個字串中的第一次出現。找到所搜尋的字串,則該函式返回第一次匹配的字串的位址 如果未找到所搜尋的字串,則返回null。const char strstr1 const char string...

版本對比函式PHP

先來個從字串中抽出數字的函式 必寫 public function getversonarr str else if in array str i temp1 return new str 然後是正文,比較版本,我還預想的了中文,被我注釋掉了,因為中文字元不算乙個string,以後有實際需求再優化 ...