以字符串形式处理用户输入时,通常希望将它们写入文件进行存储。但是,尝试使用 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中文网其他相关文章!