兩者的區別究竟是什麼?什麼時候應該使用fputs而不是fprintf?
29
A
回答
30
4
嚴...... ...... puts()
只是寫了一個字符串,而printf()
有幾種格式化工具可用於多種類型的數據。
fputs()
http://www.cplusplus.com/reference/clibrary/cstdio/fputs/
fprintf()
http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/
文檔是很有用的!學會閱讀它,並且您將擁有一個強大的工具。
+8
'puts' /'printf'與'fputs' /'fprintf'不完全相關。 'puts'在其輸出中附加了一個'\ n'',而不像其他任何函數。 – 2011-04-17 02:13:34
11
正如其他評論者指出的那樣(並且從文檔中可以看出),最大的區別是printf
允許參數格式化。
也許你問是否沒有附加參數傳遞給printf()
函數是否等價?那麼,他們不是。
char * str;
FILE * stream;
...
fputs(str,stream); // this is NOT the same as the following line
fprintf(stream,str); // this is probably wrong
第二個可能是錯誤的,因爲字符串參數fprintf()
是一個仍然是一個格式化字符串:如果它有一個「%」字符將被解釋爲格式說明符。
相同功能(但不直接/效率/尼斯)的形式是
fprintf(stream,"%s", str);
相關問題
- 1. 什麼時候應該使用perror(「...」)和fprintf(stderr,「...」)?
- 2. 什麼時候應該使用AWS,什麼時候不使用
- 3. 什麼時候應該使用async/await,什麼時候不用?
- 4. 什麼時候應該使用INNER-LOOP-JOIN而不是INNER JOIN
- 5. 什麼時候應該使用susy-media而不是susy-breakpoint
- 6. 什麼時候應該使用double而不是小數?
- 7. 什麼時候應該使用UIImagePickerControllerSourceTypePhotoLibrary而不是UIImagePickerControllerSourceTypeSavedPhotosAlbum?
- 8. Python:什麼時候應該使用subprocess.Popen而不是os.popen?
- 9. 什麼時候應該使用ThreadLocal而不是Thread.SetData/Thread.GetData?
- 10. Python:什麼時候應該使用子類而不是方法?
- 11. 什麼時候應該使用字符串而不是stringstream?
- 12. 什麼時候應該使用宏而不是內聯函數?
- 13. 什麼時候應該使用的NSKeyedArchiver,而不是SQLite的?
- 14. 什麼時候應該使用angular.component而不是angular.directive?
- 15. Swift:我應該什麼時候使用「var」而不是「let」?
- 16. 什麼時候應該使用Task.Run()而不是等待?
- 17. 什麼時候應該使用Map而不是For循環?
- 18. 什麼時候應該使用UserControl而不是Page?
- 19. 什麼時候應該使用組件而不是指令?
- 20. 什麼時候應該使用ReBuild而不是Build?
- 21. 什麼時候應該使用reg而不是電線?
- 22. 什麼時候應該使用#ifdef而不是if()?
- 23. 什麼時候應該使用IBOutlet而不是IBAction?
- 24. 什麼時候應該使用OpenStruct而不是哈希?
- 25. 什麼時候應該使用Regex而不是String.IndexOf()?或String.Contains()?
- 26. 什麼時候應該使用HStoreField而不是JSONField?
- 27. 什麼時候應該使用會話變量而不是cookie?
- 28. 什麼是phtml,什麼時候應該使用.phtml擴展名而不是.php?
- 29. 什麼時候應該使用sed,什麼時候應該使用awk
- 30. 什麼時候應該使用memcpy,什麼時候應該使用memmove?
不是一個混蛋,但你檢查的說明文件【二】(HTTP://pubs.opengroup .org/onlinepubs/009695399/functions/printf.html)[functions](http://pubs.opengroup.org/onlinepubs/009695399/functions/fputs.html)?一個格式化輸出,另一個輸出未格式化的字符串到流中。你有具體的問題嗎? – 2011-04-17 02:08:39
你方便的C參考手冊說什麼? – 2011-04-17 02:31:32
'fputs(s,f)'在功能上等同於fprintf(f,「%s」,s)'。它們都使用現代優化編譯器編譯成相同的代碼(調用'fputs')。 – chqrlie 2017-07-23 15:59:34