我有一個非常愚蠢的懷疑。當我在教我的朋友C程序時,他問我「爲什麼我們要用printf,不可能是printg或者只是print」。我無法回答他。那麼在C編程中選擇printf真的有一個原因嗎?C - 爲什麼printf不只是打印?
回答
f
in printf
代表格式化爲,其用於格式化輸出打印。
謝謝...所以如果我寫的只是打印,它會工作... – Sharan
@Sharan Chandran:沒有C標準庫中的'print'功能。 –
@SharanChandran非格式化版本被稱爲'puts'。 –
printf允許格式化,而print不允許。此外,C中不存在打印。我甚至不知道printg是什麼。
我不知道'print'是什麼...... –
是的,我只記得它不存在:)自從我直接編碼任何東西以來很長一段時間c –
如果我沒有弄錯,printf代表「打印格式化數據到標準輸出」。
只是「打印格式化」 - 只要你不用'fprintf'指定''stdout'就被認爲是理所當然的了。 –
正如其他人指出的那樣,尾隨f
指示(在scanf
家庭或格式化輸入功能)的格式的輸出。
但是,我會補充一點,區分很重要,因爲調用者知道該字符串應該具有格式說明符語義。例如,不這樣做:
char* s = get_some_user_input();
printf(s); // WRONG. Instead use: printf("%s", s) or fputs(stdout, s)
如果s
恰好包含%
字符,直接與printf
打印它可能會導致它訪問不存在的爭論,導致未定義行爲(這是對一些原因安全漏洞)。如果您定義了自己的printf
-like variadic函數,請牢記這個命名約定。
- 1. 爲什麼printf不打印垃圾值?
- 2. c printf(「%x」),它打印什麼?
- 3. 爲什麼下面的printf打印0x32
- 4. 爲什麼第二個printf打印0
- 5. 爲什麼printf(「%%」)只打印一個百分號(%)符號?
- 6. 將int打印爲float時,printf的行爲是什麼?
- 7. 爲什麼printf不在控制檯上打印「操作員」?
- 8. 打印 '%' 與C的printf/C++
- 9. 爲什麼這個long double打印不正確使用printf?
- 10. Java printf不打印
- 11. 爲什麼這個c程序不打印第一個printf語句?
- 12. Printf不打印輸出
- 13. 這是爲什麼不打印
- 14. 爲什麼printf只打印字符串中的第一個單詞?
- 15. printf()將不會打印字符串c
- 16. C printf不在線內打印?
- 17. 爲什麼在打印hello時使用「printf」而不是「println」if語句
- 18. 爲什麼不打印?
- 19. 爲什麼'假'不打印?
- 20. 爲什麼Exception不打印?
- 21. 這爲什麼不打印?
- 22. 爲什麼printf工作,但scanf不是?
- 23. C - 爲什麼在printf()
- 24. 爲什麼省略printf打印垃圾的參數?
- 25. 爲什麼換行時使用ld打印printf失敗?
- 26. printf只打印「1537」而不是整數的值
- 27. c編程,爲什麼printf不工作?
- 28. 爲什麼不在C++中使用printf()
- 29. 這是爲什麼這隻打印最後一個字?
- 30. 爲什麼打印「\\」只打印出一個反斜槓?
我剛開始學習C編程...我很抱歉如果這個問題很傻... – Sharan
有沒有這樣的事情作爲一個愚蠢的問題。等等,是的。但是這個並不是真正的例子之一。 –
這個問題含糊不清或含糊不清?它如何不合理地負責?當然有合理的答案。 (這似乎也很有趣,K-ballo是儘管已被接受的答案,但已經關閉了這個人的人之一。) – jamesdlin