如果你在寫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;
}