建議在C++中使用cstdio,cstring,cmath嗎? 我正在編寫一個需要pow,strlen和sprintf的程序......爲此我唯一能做的就是包含這3個頭文件。有沒有更好的C++方法來做到這一點?是否推薦在C++中使用cstdio,cstring,cmath等?
感謝
建議在C++中使用cstdio,cstring,cmath嗎? 我正在編寫一個需要pow,strlen和sprintf的程序......爲此我唯一能做的就是包含這3個頭文件。有沒有更好的C++方法來做到這一點?是否推薦在C++中使用cstdio,cstring,cmath等?
感謝
這是的正確方法。
不知道我同意這個:)聽起來好像他在處理C風格的字符串,而不是C++字符串。我想問的是:他不應該使用std :: basic_string
您可以使用std::stringstream
而不是sprintf
和std::string
而不是C風格的字符串。但是C++只是使用C庫來實現數學函數。
C++增加了對數學函數的一些方便的重載(例如,你可以使用浮動EXP()。)他們提供< math.h中>不僅在<CMATH>雖然。
對於數學函數,<cmath>是正確的方法;但是,對於I/O,您應該使用<iostream>,<sstream>,<fstream>和朋友。對於字符串操作,<字符串>是要走的路。
cmath在C++中並沒有被真正取代,因爲沒有什麼可以讓它們變得更好。然而,stringstreams/iostreams遠遠優於cstring和cstdio。
如果你有一個C字符串,你可以很容易地轉換爲一個std ::字符串,並再次回來。如果你使用字符串,總是使用C++字符串庫超過strlen,sprintf和。
聽起來像你寫C,只是使用C++編譯器。如果您使用的是C++,那麼我認爲您應該使用標準庫的IO操縱功能以及stringstream而不是sprintf,並使用C++字符串類而不是C風格的字符串。你「需要」strlen()和sprintf(),因爲你正在處理C字符串。 – 2010-03-21 22:34:21