最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++文件讀寫(xiě)操作詳解

 更新時(shí)間:2022年04月27日 11:06:14   作者:農(nóng)碼一生  
本文詳細(xì)講解了C++讀寫(xiě)文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、讀寫(xiě)文本文件

1.1 寫(xiě)文件

寫(xiě)文件步驟如下:

  • 包含頭文件

    #include <fstream>

  • 創(chuàng)建流對(duì)象

    ofstream ofs;

  • 打開(kāi)文件

    ofs.open("文件路徑",打開(kāi)方式);

  • 寫(xiě)數(shù)據(jù)

    ofs << "寫(xiě)入的數(shù)據(jù)";

  • 關(guān)閉文件

    ofs.close();

文件打開(kāi)方式:

打開(kāi)方式解釋
ios::in為讀文件而打開(kāi)文件
ios::out為寫(xiě)文件而打開(kāi)文件
ios::ate初始位置:文件尾
ios::app追加方式寫(xiě)文件
ios::trunc如果文件存在先刪除,再創(chuàng)建
ios::binary二進(jìn)制方式

注意: 文件打開(kāi)方式可以配合使用,利用|操作符

例如:用二進(jìn)制方式寫(xiě)文件 ios::binary | ios:: out

示例:

#include <fstream>

void test01()
{
	ofstream ofs;
	ofs.open("test.txt", ios::out);

	ofs << "姓名:張三" << endl;
	ofs << "性別:男" << endl;
	ofs << "年齡:18" << endl;

	ofs.close();
}

int main() {

	test01();

	system("pause");

	return 0;
}

總結(jié):

  • 文件操作必須包含頭文件 fstream
  • 讀文件可以利用 ofstream ,或者fstream類(lèi)
  • 打開(kāi)文件時(shí)候需要指定操作文件的路徑,以及打開(kāi)方式
  • 利用 <<可以向文件中寫(xiě)數(shù)據(jù)
  • 操作完畢,要關(guān)閉文件

1.2讀文件

讀文件與寫(xiě)文件步驟相似,但是讀取方式相對(duì)于比較多

讀文件步驟如下:

  • 包含頭文件

    #include <fstream>

  • 創(chuàng)建流對(duì)象

    ifstream ifs;

  • 打開(kāi)文件并判斷文件是否打開(kāi)成功

    ifs.open("文件路徑",打開(kāi)方式);

  • 讀數(shù)據(jù)

    四種方式讀取

  • 關(guān)閉文件

    ifs.close();

示例:

#include <fstream>
#include <string>
void test01()
{
	ifstream ifs;
	ifs.open("test.txt", ios::in);

	if (!ifs.is_open())
	{
		cout << "文件打開(kāi)失敗" << endl;
		return;
	}

	//第一種方式
	//char buf[1024] = { 0 };
	//while (ifs >> buf)
	//{
	//	cout << buf << endl;
	//}

	//第二種
	//char buf[1024] = { 0 };
	//while (ifs.getline(buf,sizeof(buf)))
	//{
	//	cout << buf << endl;
	//}

	//第三種
	//string buf;
	//while (getline(ifs, buf))
	//{
	//	cout << buf << endl;
	//}

	char c;
	while ((c = ifs.get()) != EOF)
	{
		cout << c;
	}

	ifs.close();


}

int main() {

	test01();

	system("pause");

	return 0;
}

總結(jié):

  • 讀文件可以利用 ifstream ,或者fstream類(lèi)
  • 利用is_open函數(shù)可以判斷文件是否打開(kāi)成功
  • close 關(guān)閉文件

二、讀寫(xiě)二進(jìn)制文件

以二進(jìn)制的方式對(duì)文件進(jìn)行讀寫(xiě)操作

打開(kāi)方式要指定為 ios::binary

2.1 寫(xiě)文件

二進(jìn)制方式寫(xiě)文件主要利用流對(duì)象調(diào)用成員函數(shù)write

函數(shù)原型 :ostream& write(const char * buffer,int len);

參數(shù)解釋?zhuān)鹤址羔榖uffer指向內(nèi)存中一段存儲(chǔ)空間。len是讀寫(xiě)的字節(jié)數(shù)

示例:

#include <fstream>
#include <string>

class Person
{
public:
	char m_Name[64];
	int m_Age;
};

//二進(jìn)制文件  寫(xiě)文件
void test01()
{
	//1、包含頭文件

	//2、創(chuàng)建輸出流對(duì)象
	ofstream ofs("person.txt", ios::out | ios::binary);
	
	//3、打開(kāi)文件
	//ofs.open("person.txt", ios::out | ios::binary);

	Person p = {"張三"  , 18};

	//4、寫(xiě)文件
	ofs.write((const char *)&p, sizeof(p));

	//5、關(guān)閉文件
	ofs.close();
}

int main() {

	test01();

	system("pause");

	return 0;
}

總結(jié):

  • 文件輸出流對(duì)象 可以通過(guò)write函數(shù),以二進(jìn)制方式寫(xiě)數(shù)據(jù)

2.2 讀文件

二進(jìn)制方式讀文件主要利用流對(duì)象調(diào)用成員函數(shù)read

函數(shù)原型:istream& read(char *buffer,int len);

參數(shù)解釋?zhuān)鹤址羔榖uffer指向內(nèi)存中一段存儲(chǔ)空間。len是讀寫(xiě)的字節(jié)數(shù)

示例:

#include <fstream>
#include <string>

class Person
{
public:
	char m_Name[64];
	int m_Age;
};

void test01()
{
	ifstream ifs("person.txt", ios::in | ios::binary);
	if (!ifs.is_open())
	{
		cout << "文件打開(kāi)失敗" << endl;
	}

	Person p;
	ifs.read((char *)&p, sizeof(p));

	cout << "姓名: " << p.m_Name << " 年齡: " << p.m_Age << endl;
}

int main() {

	test01();

	system("pause");

	return 0;
}

文件輸入流對(duì)象 可以通過(guò)read函數(shù),以二進(jìn)制方式讀數(shù)據(jù)

到此這篇關(guān)于C++讀寫(xiě)文件的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

德江县| 界首市| 台安县| 博客| 会昌县| 合山市| 大宁县| 本溪市| 沈阳市| 四子王旗| 汝城县| 马山县| 三亚市| 潮安县| 益阳市| 漳浦县| 鸡西市| 库伦旗| 财经| 三亚市| 潍坊市| 安岳县| 桑植县| 依安县| 桃园县| 通辽市| 内江市| 波密县| 滕州市| 兴化市| 泽普县| 中宁县| 嘉祥县| 天水市| 丹凤县| 会同县| 太仆寺旗| 吴堡县| 泰兴市| 蒲城县| 九台市|