以字串形式處理使用者輸入時,通常希望將它們寫入檔案進行儲存。但是,嘗試使用 ofstream 的 write() 方法執行此操作可能會導致意外結果。
重要的是要了解 std::string 是一種複雜的資料結構,在內部儲存字串的值及其長度。當 write() 與 std::string 一起使用時,它實際上將此內部表示寫入檔案。開啟檔案時,此二進位資料不太可能正確顯示為文字。
要將純文字寫入文件,建議的方法是使用 ofstream 對象,其作用類似於用於寫入檔案的 std::cout。以下程式碼範例說明了這種方法:
#include <fstream> #include <iostream> int main() { std::string studentName; std::cout << "Enter your name: "; std::cin >> studentName; std::ofstream outFile("output.txt"); outFile << studentName; outFile.close(); return 0; }
如果您需要編寫字串的實際二進位表示形式,而不是其明文值,您可以使用string::c_str() 檢索指向原始資料的指標及其write() 的長度。以下程式碼片段示範了這一點:
write.write(studentPassword.c_str(), studentPassword.size());
透過使用這些技術,您可以根據您的特定要求有效地將純文字字串和二進位資料寫入檔案。
以上是如何正確地將字串寫入C 中的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!