C++:文件的写入和读取

小猫做恶梦 

C++提供了 std::fstream,用于以独立于平台的方式访问文件。std::fstream从std::ofstream那里继承了写入文件的功能,并从 std::ifstream 那里继承了读取文件的功能。

要使用 std::fstream 类或其基类,需要添加头文件:

#include <fstream>

 要使用 fstream、ofstream 或 ifstream 类打开文件,需要使用open( )函数:

void open(const char *_Filename,
		ios_base::openmode _Mode = ios_base::out,
		int _Prot = (int)ios_base::_Openprot);
void open(const string& _Str,
		ios_base::openmode _Mode = ios_base::out,
		int _Prot = (int)ios_base::_Openprot);

第一个是要打开的文件的路径和名称(如果没有提供路径,将假定为应用程序的当前目录设置);第二个是文件的打开模式。 

如果要关闭文件,需要使用close()函数,要判断文件是否打开成功,需要使用is_open()函数,写入文件可以使用“>>”,读取文件可以使用“>>”或者getline()等函数。 

打开模式有以下几种:

  • ios_base::app:附加到现有文件末尾,而不是覆盖它,用于文件追加数据。
  • ios_base::ate:切换到文件末尾,但可在文件的任何地方写入数据。
  • ios_base::trunc:导致现有文件被覆盖,这是默认设置。
  • ios_base::binary:创建二进制文件(默认为文本文件)。
  • ios_base::in:以只读方式打开文件。
  • ios_base::out:以只写方式打开文件。
#include <iostream>
#include <fstream>
#include <string>

int main()
{
	//写入
	std::ofstream outFile;
	outFile.open("1.txt",std::ios_base::out);
	if (outFile.is_open())
	{
		for (int i = 0; i<100; ++i)
		{
			outFile << i << std::endl;
		}
		outFile.close();
	}
	//读取
	std::ifstream inFile;
	inFile.open("1.txt", std::ios_base::in);
	if (inFile.is_open())
	{
		std::string text;
		int num;
		while (inFile.good())
		{
			//getline(inFile, text);
			//std::cout << text<<std::endl;
			inFile >> num;
			std::cout << num << std::endl;
		}
		inFile.close();
	}
	//追加
	outFile.open("1.txt", std::ios_base::app);
	if (outFile.is_open())
	{
		for (int i = 100; i<150; ++i)
		{
			outFile << i << std::endl;
		}
		outFile.close();
	}
	system("pause");
	return 0;
}

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值