%* s格式Ç
回答
您的示例格式錯誤,「嵌套」printf
缺少參數。
如果你寫這樣的:
printf("%d",printf("%*s%*s",6,"",6, ""));
如果變成一種確定。 *
表示必須從printf
的下一個參數中讀取精度字段。因此,在這種情況下,所述「嵌套」 printf
打印至多長度的兩個字符串6.
printf
由於返回寫入的字符數,內printf
返回12,其中外printf
打印。從人頁的相關部分
引用:
精度
可選的精度,在後跟一個可選的十進制數字字符串的期間(「」)的形式。 而不是一個十進制數字字符串可以寫「*」或「* m $」(對於某些十進制整數m)來指定 精度分別在下一個參數或第m個參數中給出,其中必須有 爲int類型。如果精度僅爲'。',或者精度爲負值,則精度爲 爲零。這給出了d,i,o,u,x和X轉換中出現的最小數字位數,a,e,E,f和F組合的基數字符後出現的位數 版本,g和G轉換的有效數字的最大數目或字符的最大數目 要從s和S轉換的字符串打印。
我不知道怎麼便攜本的,但我敢肯定的是,有更好的方法將兩個數字相加。
感謝您的幫助 – Akash
printf
返回打印的字符的數目。其餘的應該是顯而易見的。
-1,我們知道你是最權威的天才,但你應該認識到,並不是每個人都像你一樣聰明。 – BlackBear
對不起,我很匆忙。我希望這是作者需要了解「12」來自哪裏的所有內容。不過現在我不打算改進我的答案,因爲其他人已經做得很好。 –
作爲寬度說明符的A *表示寬度作爲參數傳入。
printf("%*s%*s", 6, "", 6, "");
等同於:
printf("%6s%6s", "", "");
這將打印出12位。
printf
由於返回打印的字符的數目,它會返回12.
原始代碼中缺少最後的「」參數。如果它有效,那純粹是偶然的。
- 1. 格式符 - %s%S
- 2. Ç的fscanf輸入格式
- 3. Ç - 非定格式串旗
- 4. 「%s」%格式與「{0}」。format()vs「?」格式
- 5. S URL URL生成函數覆蓋Ç
- 6. Lisp代碼(s表達式)格式化
- 7. 泰勒公式Ç
- 8. '%s`中的's`是什麼意思在字符串格式?
- 9. Ç編程格式「%s」的期望輸入「字符*」,但參數2具有「字符* [50]
- 10. 格式 '%s' 的預期類型 '的char *'
- 11. 使用%1 $ s格式化文件名
- 12. 超過了文件格式限制(s)
- 13. 格式()中的{!s}何時有意義?
- 14. 字符串格式化進/出用%s
- 15. Lua的怪癖與S:格式()
- 16. Java字符串格式:「%0」和「d%s」
- 17. fmt.Println打印出格式動詞,如%s
- 18. 使用%s格式與升壓::格式的std :: string
- 19. Ç的fscanf通過模式
- 20. %(模式對(s))?
- 21. MySQL REGEXP +空格(\ s)
- 22. ç
- 23. ç
- 24. ç
- 25. ç
- 26. ç
- 27. Ç -
- 28. 正則表達式\\ s *,\\ s *做什麼?
- 29. 正則表達式(\ S +?)vs(\ S +))
- 30. 正則表達式for(... Excludes-> \([\ s \ S] + \)...)?
您正在尋找的術語是「嵌套的」。如果你谷歌「嵌套printf」,你會發現很多信息..因爲你沒有提出一個明確的問題,所以很難回答。 – Niclas
@Niclas:謝謝.. – Akash