C++文件操作1-fstream(简单版)

  废话没有,直接上正文

目录

C++标准库

打开文件

关闭文件

读写文件

定位文件位置(选读)

文件读写实例

更多


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 分割线 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


C++标准库

iostream 是我们常用的标准库,使用 cin 和 cout 作为标准输入流和标准输出流

那文件输入输出怎么实现呢?

fstream 他来了!

作为一个可以实现文件操作的标准库,fstream 提供了3个流:

ofstream 是输出文件流,用于创建文件并向文件写入信息。

 ifstream 是输入文件流,用于从文件读取信息。

 fstream 是输入输出文件流,即具有 ofstream 和 ifstream 两种功能,用于创建文件,向文件写入信息,从文件读取信息。

使用 fstream 首先要包含头文件:

#include <iostream>
#include <fstream>

定义流的方法:

ofstream outfile;
ifstream infile;
fstream iofile;

打开文件

打开文件使用 open 函数,open 函数原型:

void open(const char *filename, ios::openmode mode);
// filename : 打开的文件名及其位置
// mode : 文件打开的模式(见下表)
打开模式描述
ios::app所有写入追加到文件末尾。
ios::ate文件打开后定位到文件末尾。
ios::in打开文件用于读取。
ios::out打开文件用于写入。
ios::trunc如果该文件已经存在,则删除文件内容

mode 参数可以有多个模式结合,使用 '|' 将多个模式结合起来,如:

// 样例1
ofstream outfile;
outfile.open("file1.dat", ios::trunc | ios::out);

// 样例2
fstream iofile;
iofile.open("file2.dat", ios::out | ios::in | ios::trunc);

关闭文件

关闭文件使用 close 函数,close 函数原型:

void close();

如:

outfile.close();

读写文件

读写文件使用 >> 和 << 运算符,只要把 iostream 中的 cin 和 cout 换成 ifstream 和 ofstream 对象就可以了(即上面代码中的 outfile,infile 和 iofile),如:

// 读取
char d[20];
infile >> d;

// 写入
outfile << "Hello World!" << endl;

定位文件位置(选读)

如何重新定位文件指针(即读写文件的位置)的位置呢?

可以使用 ifstream 中的 seekg 函数和 ofstream 中的 seekp 函数

第一个参数为长整型数据(long),第二个参数用于确定查找方向(见下表):

ios::beg  从开头开始定位(默认
ios::cur

  从当前位置开始定位

ios::end  从末尾开始定位

文件位置指针是一个整数值,指定从文件的起始位置到指针所在位置的字节数。

如:

// 定位到 infile 第 n 个字节 (即 ios::beg)
infile.seekg(n);
 
// 把读指针从 infile 当前位置向后移 n 个字节
infile.seekg(n, ios::cur);
 
// 把读指针从 infile 末尾往回移 n 个字节
infile.seekg(n, ios::end);
 
// 定位到 infile 末尾
infile.seekg(0, ios::end);

文件读写实例

这里给出一个文件读写实例:(看不懂的可以看注释)

#include <fstream>
#include <iostream>
using namespace std;
int main ()
{
    
    char data[100];
 
    // 以只写模式打开文件
    ofstream outfile;
    outfile.open("info.dat");
    
    // 从终端读入一行
    cout << "What's your name? "; 
    cin.getline(data, 100);
   
    // 向文件写入用户的姓名
    outfile << data << endl;
 
    cout << "How old are you? "; 
    cin >> data;
   
    // 向文件写入用户的年龄
    outfile << data << endl;
 
    // 关闭打开的文件
    outfile.close();
 
    // 以只读模式打开文件
    ifstream infile; 
    infile.open("info.dat"); 
    
    // 读取文件内容(一行)
    infile >> data;

    // 在终端上写入数据
    cout << "The data: " << data << endl;

    // 再读取文件内容(一行)
    infile >> data;

    // 在终端上写入数据
    cout << data << endl;
 
    // 关闭打开的文件
    infile.close();
    
    // 暂停程序看运行结果
    system("pause");
    return 0;
}

输入输出:

文件内容:

Chocolate~
100

可以看到程序成功编译和运行

更多

C++文件操作还有其他方法,更多方法有待更新:

freopen 和 fopen:更新中

希望以上内容对各位有些帮助 (~ ̄▽ ̄)~ 

  • 20
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++文件读写fstream结构体是C++中用于文件读写的一种标准库。它提供了一种简单的方式来读写文件,包括文本文件和二进制文件。具体来说,fstream结构体提供了三种不同的文件操作方式:读取(input)、写入(output)和读写(input/output)。你可以使用它来打开一个文件、读取文件内容、写入数据到文件或者在文件中进行读写操作。 下面是一个简单的例子来说明如何使用fstream结构体来读写文件: ``` #include <iostream> #include <fstream> using namespace std; int main() { // 创建一个fstream对象并打开文件 fstream file("example.txt", ios::in | ios::out | ios::trunc); // 写入数据到文件 file << "Hello, World!" << endl; // 从文件中读取数据 string line; getline(file, line); cout << line << endl; // 关闭文件 file.close(); return 0; } ``` 在上面的代码中,我们首先创建了一个fstream对象,并通过构造函数打开了名为example.txt的文件。在这个例子中,我们使用了三个不同的文件操作方式:ios::in(输入)、ios::out(输出)和ios::trunc(截断)。这意味着我们可以从文件中读取数据,也可以向文件中写入数据,并且每次打开文件时都会清空文件内容。 接下来,我们将“Hello, World!”写入到文件中。然后,我们使用getline()函数从文件中读取一行数据,并将其存储到字符串变量line中。最后,我们将line输出到控制台。 最后,我们调用close()函数关闭文件

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值