scanf("%2d",&n);//讀取最大2位整數,後面的截斷
scanf("%10s",str);//讀取最大10位字元
scanf("%*[^\n]");scanf("%*c");//使緩衝區溢位,清空
fflush(stdin);//重新整理緩衝區 不是很通用
匹配特定字元scanf("%[abcd]");//只讀取字元abcd,順序不固定,遇到其他字元結束
%[a-z] 讀取abc...xyz範圍內的字元
%[a-z] 讀取所有大寫字母
%[0-9] 讀取所有的數字
%[a-za-z0-9] 讀取所有小寫字母,大寫字母,數字
不匹配特定字串%[^\n] 表示匹配除換行符以外的所有字元,遇到換行符停止
%[^0-9] 表示匹配除數字以外的所有字元,遇到十進位制數字停止
丟棄讀取到的字元%*d //表示讀取乙個整數並丟棄
scanf("%*d %d",&n);
%type
type表示讀取什麼型別資料,例如%d,%s,%[a-z],%[^a-z];type型別必須有
width表示讀取最大寬度,可有可無
*表示丟棄讀到的資料,可有可無
輸入密碼小程式
#include#include#include#define pwdlen 20
void getpwd(char *pwd,int pwdlen);
int main()
/**獲取使用者輸入的密碼
@param pwd char* 儲存密碼的記憶體首位址
@param pwdlen int 密碼的最大長度
*/void getpwd(char *pwd,int pwdlen)
else if(isprint(ch))
}pwd[i]=0; //字串結束符
}
#include #include 為windows特有標頭檔案
int main()else
} return 0;
}
#include #include #include int main()
} printf("number:%d\n",++i);
sleep(1000);//暫停1秒
//有小問題 sleep期間按esc無效
}//while
return 0;
}
C語言使用scanf輸入
scanf 函式結構 scanf 函式被用來從stdin讀入資料,並且在程式中儲存資料。預設,這個stdin流是來著鍵盤輸入。scanf 的函式結構與printf 類似 int i scanf d i d 是乙個佔位符,說明這個地方有乙個變數,並且為整型變數 是個位址符,表明這個地方放置位址,i的意...
c語言裡面用scanf連續輸入字元型資料常見問題
include include int main 很簡單的乙個程式,看起來應該沒有問題,執行結果理論上應該像這樣 但是實際上是這樣 其中的原因就在於scanf是從標準緩衝區中讀取輸入的字元的,所以想上面那樣寫的時候字元型變數j接收的就是輸入i之後輸入的那個回車鍵。解決方法 1.用fflush std...
C語言格式輸入函式scanf 詳解
scanf函式稱為格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指定的變數之中。scanf函式是乙個標準庫函式,它的函式原型在標頭檔案 stdio.h 中。與printf函式相同,c語言也允許在使用scanf函式之前不必包含stdio.h檔案。scanf函式的一般形式為 scanf 格式控制...