close

如果你在寫C的時候,有個疑問,

要怎麼在它按Enter(換行)就知道他輸入完畢,

或者中間有空白時,前面的值就是輸入值,

 

關鍵在scanf("%[^\n]",&s)

我們先了解它的大概結構,就可以熟知如何使用了。

[]它代表的是集合,也就是說那在裡面的原素,

      就是可以擷取的部分,否則擷取且掃描(輸入)到此。

      例如 : scanf("%[asd]",&s)

                就是在輸入是'a''s''d',這些原素才會錄取,一有(只要有)asd以外的輸入元就停止。

                輸入1 : asd asd   ,輸入2 : asdwdsa   ,輸入3 : asddsa

                輸出1 : asd          ,輸入2 : asd           ,輸入3 : asddsa

^它代表的反向,也就是"不是"這些原素就擷取 (也就是輸入這些原素就停止) 。

      例如 : scanf("%[^asd]",&s)

                輸入1 : qwedeeeee

                輸出1 : qwe

      例如 : scanf("%[^\n]",&s)

                說明 : \n 是換行字元,所以上述的程式,就是表示"你輸入值.........,你按了enter",

                          就結束了輸入。

 

程式範例(in C)

#include <stdio.h>

int main(){
    char s[200];
    scanf("%[^\n]",&s);
    printf("%s",s);
    return 0;
}

arrow
arrow
    文章標籤
    C語言
    全站熱搜

    Tars 發表在 痞客邦 留言(0) 人氣()