查看“C++ ofstream”的源代码
←
C++ ofstream
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
==输出文件流成员函数== 输出流成员函数具有三种类型:等效于操控器的类型、执行未格式化的写操作的类型,以及其他修改流状态且不具有等效的操控器或插入运算符的类型。 对于连续的格式化输出,可仅使用插入运算符和操控器。 对于随机访问二进制磁盘输出,在无论是否具有插入运算符,都可使用其他成员函数。 ==输出流的 open 函数== 若要使用输出文件流 (ofstream),则必须将该流与构造函数或 open 函数中的特定磁盘文件相关联。 如果使用 open 函数,则可以重复使用具有一系列文件的同一流对象。 在任一情况下,描述该文件的参数是相同的。 当打开与输出流关联的文件时,通常会指定 open_mode 标志。 可以将在 ios 类中定义为枚举器的这些标志与按位 OR (|) 运算符合并。 有关枚举器的列表,请参阅 ios_base::openmode。 三种常见的输出流情况涉及模式选项: 1. 创建文件。 如果该文件已存在,将删除旧版本。 ofstream ofile("FILENAME"); // Default is ios::out ofstream ofile("FILENAME", ios::out); // Equivalent to above 2. 将记录追加到现有文件或者创建一个文件(如果不存在)。 ofstream ofile("FILENAME", ios::app); 3. 在同一个流中打开两个文件,一次打开一个。 ofstream ofile(); ofile.open("FILE1", ios::out); // Do some output ofile.close(); // FILE1 closed ofile.open("FILE2", ios::out); // Do some more output ofile.close(); // FILE2 closed // When ofile goes out of scope it is destroyed. ==put 函数== put 函数将一个字符写入到输出流。 默认情况下,以下两个语句相同,但第二个受流的格式化参数的影响: cout.put('A'); // Exactly one character written cout <<'A'; // Format arguments 'width' and 'fill' apply ==write 函数== write 函数将内存块写入到输出文件流。 长度参数指定写入的字节数。 此示例可创建输出文件流,并向其写入 Date 结构的二进制值: #include <fstream> using namespace std; struct Date { int mo, da, yr; }; int main( ) { Date dt = { 6, 10, 92 }; ofstream tfile( "date.dat" , ios::binary ); tfile.write( (char *) &dt, sizeof dt ); } write 函数到达 NULL 字符时不会停止,因此将写入完整的类结构。 该函数采用两个参数:一个 char 指针和一个要写入的字符计数。 在对结构对象寻址之前,请注意需要强制转换为 char *。 ==seekp 和 tellp 函数== 输出文件流保留指向下一次写入数据的位置的内部指针。 seekp 成员函数将设置此指针,从而提供随机访问磁盘文件输出。 tellp 成员函数将返回文件位置。 有关使用与 seekp 和 tellp 等效的输入流的示例,请参阅 seekg 和 tellg 函数。 ==输出流的 close 函数== close 成员函数将关闭与输出文件流关联的磁盘文件。 若要完成所有磁盘输出,则必须关闭该文件。 如有必要,ofstream 析构函数将关闭该文件,但如果需要打开相同流对象的另一个文件,则可以使用 close 函数。 仅当构造函数或 open 成员函数打开该文件时,输出流析构函数才会自动关闭流的文件。 如果向构造函数传递已打开文件的文件描述符,或使用 attach 成员函数,则必须显式关闭该文件。 ==错误处理函数== 使用这些成员函数来测试写入流时是否出现错误: {| class="wikitable" |- ! 函数 ! 返回值 |- | bad | 如果存在不可恢复的错误,则返回 true。 |- | fail | 如果出现不可恢复的错误或“预期”条件(例如转换错误),或者如果找不到该文件,则返回 true。 在使用填零参数调用 clear 后,通常可以恢复处理。 |- | good | 如果没有任何错误条件(不可恢复的或其他的条件),且未设置文件结束标志,则返回 true。 |- |eof | 在文件结尾时返回 true。 |- | clear | 设置内部错误状态。 如果通过默认参数调用,则它会清除所有错误位。 |} 重载 ! 运算符以执行与 fail 函数相同的函数。 因此表达式: if(!cout)... 等效于: if(cout.fail())... 将 void*() 运算符重载为与 ! 运算符相反;因此表达式: if(cout)... 等效于: if(!cout.fail())... void*() 运算符并不等同于 good,因为它不会测试文件结尾。
返回至“
C++ ofstream
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息