回覆列表
-
1 # 湯圓電影Vlog
-
2 # 使用者4038238679905
%n與其他格式說明符號不同。%n不向printf傳遞格式化資訊,而是令printf把自己到該點已打出的字元總數放到相應變元指向的整形變數中。因此%n對於的變元必須是整形指標。 對printf呼叫返回之後,%n對於變元指向的變數中將包含有一個整數值,表示出現%n時已經由該次printf呼叫輸出的字元數。 printf("this%n is a test ",&count);//呼叫後count為4
%n說明符輸出有效字元數量,%n在scanf和printf中都可使用。與%n相對應的形參是一個int型別的指標,%n不影響scanf和printf的返回值。例如:scanf("%d %d%n", &i, &j, &k);如果輸入434 6434,則k等於8,而scanf的返回值仍然為2。又如:scanf("%c%n", &ch, &k);輸入“sbcdefdg”後,k等於1,而不是8,因為%c只取一個字元,%n輸出的是有效字元數量。printf的返回值就是輸出了多少個字元,所以%n一般沒什麼作用一般用來檢索scanf輸入了多少個字元 包括空格 Tab