使用fstream和iomanip实现C++文件格式化输出,通过ofstream结合setw、setprecision等操作符控制写入格式,如同cout般灵活进行小数位数、对齐、进制等设置。

在C++中进行文件写入时,如果需要使用格式化输出(比如控制小数位数、对齐方式、进制等),推荐使用 fstream 结合 iomanip 头文件中的操作符。这样可以在写入文件时像使用
cout一样进行格式化输出。
包含必要的头文件
要实现格式化文件输出,需包含以下头文件:
-
#include
:用于文件读写 -
#include
:提供格式化操作符,如 setw、setprecision 等
使用 ofstream 进行格式化写入
ofstream 对象支持大多数
cout支持的格式化操作。例如,可以设置浮点数精度、字段宽度、填充字符、对齐方式等。
#include#include #include int main() { std::ofstream file("output.txt"); if (!file.is_open()) { std::cerr << "无法打开文件!" << std::endl; return 1; } double price = 19.9; int quantity = 3; std::string item = "苹果"; // 设置输出格式 file << std::fixed << std::setprecision(2); // 保留两位小数 file << std::left << std::setw(10) << item // 左对齐,宽度10 << std::setw(5) << quantity // 右对齐,宽度5 << std::setw(8) << price << std::endl; // 右对齐,宽度8,保留2位小数 file.close(); return 0; }
生成的 output.txt 内容类似:
立即学习“C++免费学习笔记(深入)”;
苹果 3 19.90
常用格式化操作符说明
以下是
Perl 基础入门中文教程,chm格式,讲述PERL概述、简单变量、操作符、列表和数组变量、文件读写、模式匹配、控制结构、子程序、关联数组/哈希表、格式化输出、文件系统、引用、面向对象、包和模块等知识点。适合初学者阅读和了解Perl脚本语言。
- std::setprecision(n):设置浮点数的有效数字或小数位数(配合 fixed 使用)
- std::fixed:使用定点表示法(固定小数位)
- std::setw(n):设置下一个输出项的最小字段宽度
- std::left / std::right:设置左对齐或右对齐
- std::setfill(c):设置填充字符(默认为空格)
例如,用0填充数字:
file << std::setfill('0') << std::setw(6) << 42; // 输出 000042
注意事项
格式化操作符仅对下一个输出项生效(如 setw),而有些(如 setprecision、fixed)会持续生效直到被更改。
确保文件成功打开后再进行写入操作,避免因权限或路径问题导致写入失败。
基本上就这些。使用 fstream 配合 iomanip,可以非常灵活地控制文件中的输出格式,适合生成报表、日志或结构化文本文件。









