scanf的特殊用法

字號(hào):

函數(shù)名: scanf
    功 能: 執(zhí)行格式化輸入
    用 法: int scanf(char *format[,argument,...]);scanf()函數(shù)是通用終端格式化輸入函數(shù),它從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤) 讀取輸入的信息??梢宰x入任何固有類型的數(shù)據(jù)并自動(dòng)把數(shù)值變換成適當(dāng)?shù)臋C(jī)內(nèi)格式。其調(diào)用格式為: scanf("<格式化字符串>",<地址表>);scanf()函數(shù)返回成功賦值的數(shù)據(jù)項(xiàng)數(shù),出錯(cuò)時(shí)則返回EOF。其控制串由三類字符構(gòu)成:
    1。格式化說明符;
    2??瞻追?BR>    3。非空白符;
    (A) 格式化說明符
    格式字符 說明%a 讀入一個(gè)浮點(diǎn)值(僅C99有效)
    %A 同上
    %c 讀入一個(gè)字符
    %d 讀入十進(jìn)制整數(shù)
    %i 讀入十進(jìn)制,八進(jìn)制,十六進(jìn)制整數(shù)
    %o 讀入八進(jìn)制整數(shù)
    %x 讀入十六進(jìn)制整數(shù)
    %X 同上
    %c 讀入一個(gè)字符
    %s 讀入一個(gè)字符串
    %f 讀入一個(gè)浮點(diǎn)數(shù)
    %F 同上
    %e 同上
    %E 同上
    %g 同上
    %G 同上
    %p 讀入一個(gè)指針
    %u 讀入一個(gè)無符號(hào)十進(jìn)制整數(shù)
    %n 至此已讀入值的等價(jià)字符數(shù)
    %[] 掃描字符集合
    %% 讀%符號(hào)
    附加格式說明字符表修飾符 說明L/l 長度修飾符 輸入"長"數(shù)據(jù)
    h 長度修飾符 輸入"短"數(shù)據(jù)
    W 整型常數(shù) 指定輸入數(shù)據(jù)所占寬度
    * 星號(hào) 空讀一個(gè)數(shù)據(jù)
    hh,ll同上h,l但僅對C99有效。
    (B) 空白字符空白字符會(huì)使scanf()函數(shù)在讀操作中略去輸入中的一個(gè)或多個(gè)空白字符,空白符可以是space,tab,newline等等,直到第一個(gè)非空白符出現(xiàn)為止。(C) 非空白字符一個(gè)非空白字符會(huì)使scanf()函數(shù)在讀入時(shí)剔除掉與這個(gè)非空白字符相同的字符。
    注:scanf()控制串知識(shí)就介紹到這里(應(yīng)該比較齊全了^_^),如有遺漏下次補(bǔ)上。下面將結(jié)合實(shí)際例程,一一闡述.
    (2) "%d%d%d"是按十進(jìn)值格式輸入三個(gè)數(shù)值。輸入時(shí),在兩個(gè)數(shù)據(jù)之間可以用一個(gè)或多個(gè)空格、tab鍵、回車鍵分隔。一定要跟在數(shù)字后面
    3、在用"%c"輸入時(shí),空格和“轉(zhuǎn)義字符”均作為有效字符。
    scanf()函數(shù)接收輸入數(shù)據(jù)時(shí),遇以下情況結(jié)束一個(gè)數(shù)據(jù)的輸入:(不是結(jié)束該scanf函數(shù),scanf函數(shù)僅在每一個(gè)數(shù)據(jù)域均有數(shù)據(jù),并按回車后結(jié)束)。
    ① 遇空格、“回車”、“跳格”鍵。
    ② 遇寬度結(jié)束。
    ③ 遇非法輸入。