2011-05-08 31 views
1

最近我一直遇到fputs問題:當用fputs在文本文件中打印一些字符串時,發生其他字符比A-Z,a-z,0-9 in(字符不是字符串的一部分)。我絕對確信所有字符串都以空字符結尾。不幸的是我不能給你更多的信息,因爲我沒有親自測試這個程序,那是我收到的反饋。但是在我用fprintf替換fput後,它工作正常。fputs/puts dangerous(in C)?

所以我的問題是:fputs有點危險?你有沒有遇到過麻煩?

回答

4

fputs本質上並不危險。當然,如果沒有示例代碼,很難說出是什麼導致了你所看到的問題。

1

fputs()不是一個「危險」功能(不像gets(),這是危險的)。您正在打印的字符串實際上包含最終在文件中的字符。沒有代碼,我們無法知道他們是如何到達那裏的。

+1

請注意,'fgets'與'gets'不同,需要一個長度參數,所以它被認爲是安全的。 – Trent 2011-05-08 22:21:36