欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

05章-文件操作--C++核心知識(shí)學(xué)習(xí)筆記

5 文件操作

程序運(yùn)行時(shí)產(chǎn)生的數(shù)據(jù)都屬于臨時(shí)數(shù)據(jù),程序一旦運(yùn)行技術(shù)都會(huì)被釋放,通過(guò)文件可以將數(shù)據(jù)持久化
C++中隊(duì)文件操作需要包含頭文件#include <fsteam>

創(chuàng)新互聯(lián)建站成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)網(wǎng)站開(kāi)發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),成都響應(yīng)式網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:18980820575

文件類型分為兩種:

  1. 文本文件:文件以文本的ASCII碼形式存儲(chǔ)在計(jì)算機(jī)中
  2. 二進(jìn)制文件:文件以文本的二進(jìn)制形式存在計(jì)算機(jī)中,用戶一般不會(huì)直接讀懂他們

操作文件的三大類:

  1. ofstream:寫(xiě)操作
  2. ifstream:讀操作
  3. fstream:讀寫(xiě)操作

5.1 文本文件

5.1.1 寫(xiě)文件

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

  1. 包含頭文件 #include <fstream>
  2. 創(chuàng)建流對(duì)象 ofstream ofs;
  3. 打卡文件 ofs.open("文件路徑", 打開(kāi)方式);
  4. 寫(xiě)數(shù)據(jù) ofs << "寫(xiě)入的數(shù)據(jù)";
  5. 關(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)方式可以配合使用,利用|操作符號(hào)

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

示例

#include <iostream>
using namespace std;
#include <fstream>

//文本文件 寫(xiě)文件
void test01()
{
	//1、包含頭文件 fstream

	//2、創(chuàng)建流對(duì)象

	ofstream ofs;

	//3、指定打開(kāi)方式
	ofs.open("test.txt", ios::out);

	//4、寫(xiě)內(nèi)容
	ofs << "姓名:張三" << endl;
	ofs << "性別:未知" << endl;
	
	//5、關(guān)閉文件
	ofs.close();

}
int main()
{
	test01();
	system("pause");
	return 0;
}

總結(jié)

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

5.1.2 讀文件

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

讀文件步驟如下:

  1. 包含頭文件 #include <fstream>
  2. 創(chuàng)建流對(duì)象 ifstream ifs;
  3. 打開(kāi)文件并判斷文件是否發(fā)開(kāi)成功 ifs.open("文件路徑",打開(kāi)方式);
  4. 讀數(shù)據(jù) 四種方式讀取
  5. 關(guān)閉文件 ifs.close()

示例

#include<iostream>
using namespace std;
#include<fstream>
#include<string>

//文本文件讀文件
void test01()
{
	//1、包含頭文件

	//2、創(chuàng)建流對(duì)象
	ifstream ifs;

	//3、打開(kāi)文件 并且判斷是否打開(kāi)成功
	ifs.open("test.txt", ios::in);

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

	//4、讀文件 //分別注釋別的方式檢驗(yàn)?zāi)硞€(gè)方式

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

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

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

	//第四種 不推薦使用
	char c; 
	while ((c = ifs.get()) != EOF) //如果沒(méi)有讀到文件尾End of File 文件尾的標(biāo)志
	{
		cout << c << endl;
	}

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

}

int main()
{
	test01();
	system("pause");
	return 0;
}

總結(jié)

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

5.2 二進(jìn)制文件

以二進(jìn)制的方式對(duì)文件進(jìn)行讀寫(xiě)操作,打開(kāi)方式要指定為 ios::binary

5.2.1 寫(xiě)文件

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

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

參數(shù)解釋:字符指定buffer指向內(nèi)存中一段存儲(chǔ)空間,len是讀寫(xiě)的字節(jié)數(shù)

示例

#include<iostream>
using namespace std;
#include<fstream>	

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

class Person
{
public:
	char m_Name[64];//建議不要用string 用 c語(yǔ)言的 char
	int m_Age;//年齡
};

void test01()
{
	//1、包含頭文件

	//2、創(chuàng)建流對(duì)象
	ofstream ofs;

	//3、打開(kāi)文件
	ofs.open("5.2.1person.txt", ios::out | ios::binary);

	//4、寫(xiě)文件
	Person p = { "張三",18 };
	ofs.write((const char *) & p, sizeof(Person));
	//5、關(guān)閉文件
	ofs.close();
}

int main()
{
	test01();
	system("pause");
	return 0;
}

總結(jié)

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

5.2.2 讀文件

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

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

參數(shù)解釋:字符指針buffer指向內(nèi)存中一段存儲(chǔ)空間,len是讀寫(xiě)的字節(jié)數(shù)

示例

#include <iostream>
using namespace std;
#include <fstream>

//二進(jìn)制文件的讀文件操作

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

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

	//2、創(chuàng)建流對(duì)象
	ifstream ifs;

	//3、打開(kāi)文件,判斷文件是否打開(kāi)成功
	ifs.open("5.2.1person.txt", ios::in | ios::binary);

	if (!ifs.is_open())
	{
		cout << "文件打開(kāi)失?。? << endl;
		return;
	}
	else
	{
		cout << "文件打開(kāi)成功!" << endl;
	}
	//4、讀文件
	Person p;

	ifs.read((char*)&p, sizeof(Person));
	cout << "姓名:" << p.m_Name << " 年齡:" << p.m_Age << endl;

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

}
int main()
{
	test01();
	system("pause");
	return 0;
}

總結(jié)

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

分享題目:05章-文件操作--C++核心知識(shí)學(xué)習(xí)筆記
文章鏈接:http://chinadenli.net/article14/dsoijde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站制作ChatGPT、軟件開(kāi)發(fā)品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名