日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

用scanf()函數(shù)讀取空白字符,回車符\r換行符\n等

 rookie 2016-06-20

C語言中scanf()函數(shù)是從標(biāo)準(zhǔn)輸入流stdin中讀取信息的,很多時(shí)候調(diào)用scanf()函數(shù)卻得不到想要的信息,可以從這方便考慮解決問題。

fflush(stdin);

是個(gè)不錯(cuò)的方法。

 

想要用scanf()函數(shù)讀入空白字符,回車符和換行符這些字符,就需要提到scanf()函數(shù)的格式說明符:

轉(zhuǎn)換字符(就是%后跟的部分)

  a 讀浮點(diǎn)值(僅適用于 C99)

  A 讀浮點(diǎn)值(僅適用于 C99)

  c 讀單字符

  d 讀十進(jìn)制整數(shù)

  i 讀十進(jìn)制、八進(jìn)制、十六進(jìn)制整數(shù)

  e 讀浮點(diǎn)數(shù)

  E 讀浮點(diǎn)數(shù)

  f 讀浮點(diǎn)數(shù)

  F 讀浮點(diǎn)數(shù)(僅適用于 C99)

  g 讀浮點(diǎn)數(shù)

  G 讀浮點(diǎn)數(shù)

  o 讀八進(jìn)制數(shù)

  s 讀字符串

  x 讀十六進(jìn)制數(shù)

  X 讀十六進(jìn)制數(shù)

  p 讀指針值

  n 至此已讀入值的等價(jià)字符數(shù)

  u 讀無符號(hào)十進(jìn)制整數(shù)

  [ ] 掃描字符集合

  % 讀 % 符號(hào)(百分號(hào))

  附加格式說明字符表修飾符說明

  L/l 長度修飾符 輸入"長"數(shù)據(jù)

  h 長度修飾符 輸入"短"數(shù)據(jù)

  W 整型常數(shù) 指定輸入數(shù)據(jù)所占寬度

  * 表示本輸入項(xiàng)在讀入后不賦值給相應(yīng)的變量

上面提到的 掃描字符集合 []就是關(guān)鍵,它使得讀入空白字符成為可能。如下所示:

#include <stdio.h>

#include <string.h>

 

int main()

{

    char str1[80], str2[80];

    memset(str1, 0, 80);

    memset(str2, 0, 80);    //這個(gè)地方可以設(shè)不同的值- -,顯示的時(shí)候很有趣

 

    scanf("%[^\n]%*5c%[^\n]", str1, str2);

    printf("%s\n%s\n", str1, str2);

 

    return 0;

}

上面代碼使得空格,制表符作為輸入成為可能,其中 %[^\n] 表示除了換行符\n之外的字符都接收。

如想要接收換行符\n作為輸入,只需要在掃描字符集中添加\n即可。

注意:

回車符是特殊字符,在scanf("%[^\n]", str)之后需要增加scanf("%c", newline),消除回車符。否則,只要接收到一個(gè)回車符scanf會(huì)不停止運(yùn)行。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多