printf()函式的type是%n時,不是表示列印資料,而是將列印資訊的數量儲存到指定的變數中,需要注意的是,在printf()函式中使用%n時,其對應的引數是變數的位址。
當printf()使用%n時,會有不安全的隱患,因此,預設情況下,%n是不能使用的。如果需要使用,則要開啟%n的開關。
通過_get_printf_count_output()函式獲取當前%n的開關狀態。如果%n是不能使用,則返回值是0,否則返回值是1。
通過_set_printf_count_output()函式設定%n的開關狀態。當該函式的引數是0時,則關閉%n的開關,如果引數是非零值,則開啟%n的開關。_set_printf_count_output()函式的返回值是修改之前的%n的開關狀態,不能使用,則返回值是0,否則返回值是1。
以下**在printf()中使用了%n
int a;
int e;
e = _get_printf_count_output();
if (e == 0)
printf("12345%n", &a);
此時,a的值是%n之前的字串的長度,即此時a的值是5。如果%n的位置變為
printf("123%n45", &a);
此時,a的值是%n之前的字串的長度,即a的值是3。 C 中printf 函式的用法10 10
printf 的引數格式如下所示 flags width precision size type 其中,第四個域size在指定了type的取值範圍。當size域是hh,且type是d,i,o,u,x或者x時,表示以十進位制整型 八進位制 無符號或者十六進製制的格式列印字元。char c 0xf0 p...
C中的printf函式詳解
printf 函式是格式化輸出函式,一般用於向標準輸出裝置按規定格式輸出資訊。printf 函式的呼叫格式為 printf 格式化字串 參量表 其中格式化字串包括兩部分內容 一部分是正常字元,這些字元將按原樣輸出 另一部分是格式化規定字元,以 開始,後跟乙個或幾個規定字元,用來確定輸出內容格式。參量...
C語言scanf 與printf 函式用法
c 單個字元 d 十進位制整數 int ld 十進位制整數 long f 十進位制浮點數 float lf 十進位制浮點數 double o 八進位制數 s 字串 char u 無符號十進位制數 dword x 十六進製制數 0x00000 printf 4d 1 1 輸出1的前邊有3個空格,補齊4...