首页 > 后端开发 > C++ > 正文

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

Linda Hamilton
发布: 2024-11-26 21:00:17
原创
982 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板