bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

C語言—文件操作-創(chuàng)新互聯(lián)

為什么使用文件?

目前創(chuàng)新互聯(lián)建站已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、虎林網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

使用文件可以將數(shù)據(jù)直接存放在電腦的硬盤上,做到了數(shù)據(jù)的持久化。

什么是文件?

磁盤上的文件就是文件。

但在程序設(shè)計(jì)中,常說的有兩種:程序文件和數(shù)據(jù)文件,這是從從文件功能的角度來分類的。

程序文件:

包括源程序文件(后綴為.c),目標(biāo)文件(Windows環(huán)境后綴為.obj),可執(zhí)行程序(Windows環(huán)境后綴為.exe)。

數(shù)據(jù)文件:

文件的內(nèi)容不一定是程序,而是程序運(yùn)行時(shí)讀寫的數(shù)據(jù),比如程序運(yùn)行需要從中讀取數(shù)據(jù)的文件或輸出內(nèi)容的文件。

把內(nèi)存的數(shù)據(jù)寫入文件叫寫(輸出),將文件的數(shù)據(jù)讀入內(nèi)存叫讀(輸入)。

文件名

每一個(gè)文件都有唯一的文件標(biāo)識(shí)被稱為文件名,其中文件名包含3部分:文件路徑+文件名主干+文件后綴

例如:c:\code\test.txt

文件的打開和關(guān)閉

操作文件:打開文件 ->讀/寫文件 ->關(guān)閉文件

1.文件類型指針(簡(jiǎn)稱文件指針)

每個(gè)被使用的文件都在內(nèi)存中開辟了一個(gè)相應(yīng)的文件信息區(qū),用來存放文件的相關(guān)信息(如文件的名字、文件狀態(tài)以及文件當(dāng)前的位置等)。這些信息是保存在一個(gè)結(jié)構(gòu)體變量中的。該結(jié)構(gòu)體類型具有系統(tǒng)聲明,為FILE。一般通過一個(gè)FILE的指針來維護(hù)這個(gè)FILE結(jié)構(gòu)的變量,以便于使用。

int main()
{
FILE* pf = fopen(const char* filename, const char* mode);

//filename為文件名或文件路徑,mode為文件打開的方式
//當(dāng)添加的為文件路徑時(shí),記得在斜杠前再加一個(gè)斜杠,將斜杠轉(zhuǎn)義
//返回類型為一個(gè)結(jié)構(gòu)體指針

if (pf == NULL)
	{
		printf("%s\n", strerror(errno));
		return 1;
	}

//注意文件有可能打開失敗,則返回一個(gè)空指針,我們可以查看打開失敗的原因

fclose(pf);
	pf = NULL;
//關(guān)閉文件

return 0;
}

其中文件打開的方式有以下幾種 :

以下是讀字符和寫字符的示例?

int main()
{
	FILE* pf = fopen("test.txt","w");
	if (pf == NULL)
	{
		printf("%s\n", strerror(errno));
        //perror("fopen");是一樣的效果
		return 1;
	}
	//將字符a寫入文件
	fputc("a", pf);//字符寫入函數(shù)
	//讀字符
	int ch = 0;

	//從文件了讀一個(gè)字符
	//如果讀取字符失敗,會(huì)返回EOF
	while ((ch = fgetc(pf)) != EOF)
	{
		printf("%c", ch);
	}
	fclose(pf);
	pf = NULL;

	return 0;
}

寫或讀一行數(shù)據(jù)與讀寫字符類似,只是采用fputs和fgets。使用fgets時(shí),如讀5個(gè)字符實(shí)際會(huì)只有4個(gè)因?yàn)樽詣?dòng)添加了一個(gè)\0。同理也有fscanf以及fprintf。

注意,使用寫文件時(shí)使用w打開,會(huì)將原文件中的數(shù)據(jù)銷毀,如不想銷毀,應(yīng)使用a,即追加?。

辨析:

scanf/fscanf/sscanf

printf/fprintf/sprintf

其中scanf是針對(duì)標(biāo)準(zhǔn)輸入(即鍵盤)的格式化輸入語句

printf是針對(duì)標(biāo)準(zhǔn)輸出的格式化輸出語句

fscanf是針對(duì)所有輸入流的格式化輸入語句

fprintf是針對(duì)所有輸出流的格式化輸出語句

sscanf是從一個(gè)字符串中轉(zhuǎn)換出一個(gè)格式化的數(shù)據(jù)

sprintf是把一個(gè)格式化的數(shù)據(jù)寫入(轉(zhuǎn)換成)字符串

文件的隨機(jī)讀寫

fseek函數(shù)

第一個(gè)參數(shù)選擇流,第二個(gè)參數(shù)為偏移量,第三個(gè)參數(shù)為起始位置(從哪里開始偏移)。

FILE* pf = fopen("test.txt","r");
	if (pf == NULL)
	{
		printf("%s\n", strerror(errno));
		return 1;
	}
	//文件中已有abcdef
	fseek(pf, 2, SEEK_SET);
	int ch = fgetc(pf);
	printf("%c\n", ch);
	//輸出的結(jié)果為c

rewind函數(shù)?

讓文件指針的位置回到文件的起始位置

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前名稱:C語言—文件操作-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://vcdvsql.cn/article36/cscisg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司動(dòng)態(tài)網(wǎng)站搜索引擎優(yōu)化建站公司外貿(mào)建站網(wǎng)站制作

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化