std::ofstream是写字符串最直接的首选——专为输出设计、行为明确、自动处理行尾转换;需检查is_open()避免静默失败。

用 std::ofstream 写字符串最直接
绝大多数情况,std::ofstream 就是首选——它专为输出设计,行为明确,不用手动管理缓冲或换行符。默认以文本模式打开,自动处理行尾转换(比如 Windows 下写
会变成
),这点和 C 的 fputs 不同。
常见错误是忘记检查文件是否成功打开:
std::ofstream file("log.txt");
if (!file.is_open()) {
// 这里必须处理,否则后续 write 操作静默失败
return;
}
file << "hello world";
-
std::ofstream构造时默认不抛异常,is_open()是唯一可靠判断方式 - 写入后不必显式调用
flush(),析构时自动刷盘;但若程序可能崩溃或需要立即落盘,可加file.flush() - 如果字符串含二进制数据(比如含