C++打开文件的方式

一般情况下,再打开一个指定文件时会有两种情况

(1) 文件不存在。

(2) 文件存在。

对于第一种情况,ofstream类的对象会默认自动创建一个同名文件;而第二种情况下,ofstream类的对象会默认将该文件的内容删除,问数据输出到该文件做好准备。

假如不想使用上面的默认的打开方式,我们可以用oftream或者ifstream对象的构造函数或者open()函数指定一种打开方式,首先来看一下open()函数。

open()函数的原型为 void open(const char * fname,int mode);

其中参数fname是代表文件名的字符串,第二个参数mode是文件的打开方式,每一位代表一种打开方式,在ios基类中用枚举常量表示。

ios::in        打开文件进行读操作,即读取文件中的数据

ios::out     打开文件进行写操作,即输出数据到文件中

ios::ate    打开文件时文件指针指向文件末尾,但是你可以在文件中的任何地方写数据

ios::app   打开文件不会清空数据,文件指针始终在文件末尾,因此只能在文件末尾写数据

ios:trunc  默认,若打开文件已存在,测清空文件的内容

ios::nocreate    若打开文件不存在则不建立,返回打开失败信息

ios::noreplace  打开文件时不能覆盖,若文件存在测返回打开失败信息

ios::binary          打开文件为二进制文件,否则为文本文件

注:ate 是 at end 的缩写,trunc是truncate(截断)的缩写,app是append(追加)的缩写
--------------------- 
作者:l_stream 
来源:CSDN 
原文:https://blog.csdn.net/l_stream/article/details/6876583 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 10
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ 中,可以使用文件流来打开和操作文件。文件流分为输入流和输出流,分别用于读取文件和写入文件。常用的文件打开方式有以下三种: 1. 以读取方式打开文件: ```c++ #include <fstream> std::ifstream infile("input.txt"); // 打开 input.txt 文件,以读取方式打开 ``` 2. 以写入方式打开文件: ```c++ #include <fstream> std::ofstream outfile("output.txt"); // 打开 output.txt 文件,以写入方式打开 ``` 3. 以读写方式打开文件: ```c++ #include <fstream> std::fstream file("data.txt", std::ios::in | std::ios::out); // 打开 data.txt 文件,以读写方式打开 ``` 其中,`infile` 和 `outfile` 分别表示输入流和输出流,`file` 表示读写流。`ios` 是 C++ 中的输入输出状态标志,`std::ios::in` 表示以读取方式打开文件,`std::ios::out` 表示以写入方式打开文件,`std::ios::in | std::ios::out` 表示以读写方式打开文件打开文件后,可以使用文件流进行读取和写入操作,例如: ```c++ #include <fstream> #include <iostream> int main() { std::ifstream infile("input.txt"); // 打开 input.txt 文件,以读取方式打开 if (!infile.is_open()) { std::cout << "文件打开失败!" << std::endl; return -1; } int a, b; infile >> a >> b; // 从文件中读取两个整数 std::cout << "a = " << a << ", b = " << b << std::endl; infile.close(); // 关闭文件 return 0; } ``` 在读取文件时,需要先判断文件是否打开成功,可以使用 `is_open()` 函数判断。关闭文件时,可以使用 `close()` 函数关闭文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值