首页 >后端开发 >C++ >为什么将 std::string 写入文件会产生框而不是文本?

为什么将 std::string 写入文件会产生框而不是文本?

Linda Hamilton
Linda Hamilton原创
2024-11-26 21:00:171016浏览

Why Does Writing a std::string to a File Produce Boxes Instead of Text?

如何在不看到框的情况下将 std::string 写入文件

问题:

使用 write() 方法将 std::string 变量写入文件时,生成的文件显示框而不是预期的 细绳。 std::string 是否适合这种情况,还是应该考虑替代方法?

答案:

std::string 确实适合写入文件,但 write() 方法适用于二进制数据。要以文本格式写入字符串,请考虑使用 ofstream 对象。举个例子:

#include <fstream>
#include <string>
#include <iostream>

int main() {
    std::string name;
    std::cout << "Enter your name: ";
    std::cin >> name;
    std::ofstream out("name.txt");
    out << name;  // Writes the string to the file in text format
    out.close();
    return 0;
}

对于二进制写入,使用c_str()方法获取底层字符数据并写入文件:

#include <fstream>
#include <string>
#include <iostream>

int main() {
    std::string password;
    std::cout << "Enter your password: ";
    std::cin >> password;
    std::ofstream out("password.bin", std::ios::binary);
    out.write(password.c_str(), password.size());  // Writes the password in binary format
    out.close();
    return 0;
}

以上是为什么将 std::string 写入文件会产生框而不是文本?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn