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

C語(yǔ)言超詳細(xì)文件操作基礎(chǔ)下篇

 更新時(shí)間:2022年03月15日 16:42:16   作者:K穩(wěn)重  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的文件操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

一、文件的順序讀寫(xiě)

兄弟們,上一章只介紹到了如何把單個(gè)的字符或者字符串如何寫(xiě)到文件里或者從文件中讀取,文件的順序讀寫(xiě)后面還有幾個(gè)函數(shù)沒(méi)有介紹完,我們接著上一章繼續(xù),給大家介紹完,圖片再拷給大家回顧回顧

1圖片如下:

1.格式化的輸出函數(shù)(fprintf)

這樣我們就可以把格式化的數(shù)據(jù)寫(xiě)到文件里了。

代碼如下:

#include<stdio.h>
struct S
{
	char arr[10];
	int num;
	float sc;
};
int main()
{
	struct S s = { "abcdef",20,5.5f };
	FILE* pf = fopen("test.dayta", "w");
	if (NULL == pf)
	{
		return 1;
	}
	//寫(xiě)文件
	fprintf(pf, "%s %d %f", s.arr, s.num, s.sc);//這就是如何把格式化的數(shù)據(jù)寫(xiě)到文件里
	//關(guān)閉文件
	fclose(pf);
	pf = NULL;
	return 0;
 
}

2.格式化的輸入函數(shù)(fscanf)

這樣我們就可以從文件里讀取格式化的數(shù)據(jù)了。

代碼如下:

#include<stdio.h>
struct S
{
	char arr[10];
	int num;
	float sc;
};
int main()
{
	struct S s = {0};
	FILE* pf = fopen("test.dayta", "r");
	if (NULL == pf)
	{
		return 1;
	}
	//寫(xiě)文件
	fscanf(pf, "%s %d %f", s.arr, &(s.num), &(s.sc));//這就是如何把格式化的數(shù)據(jù)寫(xiě)到文件里
	printf("%s %d %f", s.arr, s.num, s.sc);
	fprintf(stdout, "%s %d %f", s.arr, s.num, s.sc);//這類函數(shù)參數(shù)不同,功能就不同,可以適用于所有的流
	//關(guān)閉文件
	fclose(pf);
	pf = NULL;
	return 0;
 
}

3.二進(jìn)制讀寫(xiě)

1.二進(jìn)制輸出函數(shù)(fwrite)

以二進(jìn)制的方式把數(shù)據(jù)寫(xiě)到文件里

代碼如下:

struct S
{
    char arr[10];
    int num;
    float sc;
};
int main()
{
    struct S s = {"abcdef",20,5.5f};
    FILE* pf = fopen("test.dayta", "w");
    if (NULL == pf)
    {
        return 1;
    }
    //寫(xiě)文件
    fwrite(&s, sizeof(struct S), 1, pf);
    //關(guān)閉文件
    fclose(pf);
    pf = NULL;
    return 0;
 
}

2.二進(jìn)制輸入函數(shù)

以二進(jìn)制的方式從文件里讀取數(shù)據(jù)

代碼如下:

#include<stdio.h>
struct S
{
	char arr[10];
	int num;
	float sc;
};
int main()
{
	struct S s = {0};
	FILE* pf = fopen("test.dayta", "r");
	if (NULL == pf)
	{
		return 1;
	}
	//寫(xiě)文件
	fread(&s, sizeof(struct S), 1, pf);
	printf("%s %d %f", s.arr, &(s.num), &(s.sc));
	//關(guān)閉文件
	fclose(pf);
	pf = NULL;
	return 0;
 
}

3.scanf,fscanf,sscanf、printf,fprintf,sprintf的區(qū)別

scanf —? 針對(duì)標(biāo)準(zhǔn)輸入的格式化的輸入語(yǔ)句—stdin

fscanf — 針對(duì)所有輸入流的格式化的輸入語(yǔ)句 — stdin/文件

sscanf — 從一個(gè)字符串中讀取一個(gè)格式化的數(shù)據(jù)

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

fprintf — 針對(duì)所有輸出流的格式化輸出語(yǔ)句 — stdout/文件

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

二、文件的隨機(jī)讀寫(xiě)

1.fseek函數(shù)

fseek函數(shù):根據(jù)文件指針的位置和偏移量來(lái)定位文件指針。

代碼如下:

#include<stdio.h>
int main()
{
	
	FILE* pf = fopen("test.data", "r");
	if (NULL == pf)
	{
		perror("main");
		return 1;
	}
	//讀取文件
	int ch = fgetc(pf);
	printf("%c\n", ch);
	//調(diào)整文件
 
	fseek(pf, 2, SEEK_END);
	int ch = fgetc(pf);
	printf("%c\n", ch);
 
	//關(guān)閉文件
	fclose(pf);
	pf = NULL;
	return 0;
 
}

2.ftell函數(shù)

ftell函數(shù):返回文件指針相對(duì)于起始位置的偏移量(告知偏移量是多少)

3.rewind函數(shù)

rewind函數(shù):讓文件指針的位置回到文件的起始位置

三、被錯(cuò)誤使用的feof

feof(文件結(jié)束返回非0)

feof應(yīng)用于當(dāng)文件讀取結(jié)束的時(shí)候,判斷是讀取失敗結(jié)束,還是遇文件尾結(jié)束

fgetc函數(shù)在讀取結(jié)束的時(shí)候,會(huì)返回EOF,正常讀取的時(shí)候,返回的是讀取到的字符ASCII碼值

fgets函數(shù)在讀取結(jié)束的時(shí)候返回NULL,正常讀取的時(shí)候返回存放字符串的空間起始地址。

fread函數(shù)在讀取的時(shí)候,返回的是實(shí)際讀取到的完整元素的個(gè)數(shù)。如果發(fā)現(xiàn)讀取到的元素個(gè)數(shù)小于指定的元素個(gè)數(shù),這就是最后一次讀取了。

寫(xiě)代碼test.txt文件拷貝一份,生成test2,txt

#include<stdio.h>
int main()
{
	FILE* pfread = fopen("test.txt", "r");
	if (NULL == pfread)
	{
		return 1;
	}
	FILE* pfwrite = fopen("test2.txt", "w");
	{
		if (pfread == NULL)
		{
			fclose(pfread);
			pfread = NULL;
				return 1;
		}
		//文件打開(kāi)成功
		//讀寫(xiě)文件
		int ch = 0;
		while((ch = fgetc(pfread))!= EOF)
		{
			//寫(xiě)文件
			fputc(ch, pfwrite);
		}
	}
	//關(guān)閉文件
	fclose(pfwrite);
	pfwrite = NULL;
	return 0;
}

總結(jié)

綜合兩篇文章簡(jiǎn)單的介紹了什么是文件,文件的使用和操作方法,學(xué)會(huì)文件的使用讓我們能更進(jìn)一步加深對(duì)編程的了解,相信大家都學(xué)會(huì)了。如果上述文章有任何問(wèn)題?,歡迎大佬們提出質(zhì)疑,我會(huì)虛心學(xué)習(xí)和改正,最重要的是能共同進(jìn)步,共同成長(zhǎng),學(xué)習(xí)好編程。

到此這篇關(guān)于C語(yǔ)言超詳細(xì)文件操作基礎(chǔ)下篇的文章就介紹到這了,更多相關(guān)C語(yǔ)言 文件操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言統(tǒng)計(jì)輸入字符各個(gè)字母出現(xiàn)頻率的解題思路

    C語(yǔ)言統(tǒng)計(jì)輸入字符各個(gè)字母出現(xiàn)頻率的解題思路

    這篇文章主要介紹了C語(yǔ)言統(tǒng)計(jì)輸入字符各個(gè)字母出現(xiàn)頻率的解題思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • C++簡(jiǎn)明圖解this指針的使用

    C++簡(jiǎn)明圖解this指針的使用

    this 指針在C++類和對(duì)象中是個(gè)很方便實(shí)用的關(guān)鍵字,可以簡(jiǎn)化對(duì)象成員屬性的調(diào)用,使代碼表達(dá)的含義更加準(zhǔn)確;在之前的學(xué)習(xí)中我們都可以判斷變量所占內(nèi)存空間大小,那么我們創(chuàng)建的類對(duì)象所占的內(nèi)存空間怎么計(jì)算呢?想知道this的妙用和類對(duì)象占用的內(nèi)存空間就來(lái)跟我學(xué)習(xí)吧
    2022-06-06
  • C++深入分析講解類的知識(shí)點(diǎn)

    C++深入分析講解類的知識(shí)點(diǎn)

    C++類,是指系統(tǒng)在第一次在程序中遇到一個(gè)類時(shí)為這個(gè)類建立它的所有類變量的拷貝 - 這個(gè)類的所有實(shí)例共享它的類變量
    2022-06-06
  • 如何在C++類的外部調(diào)用類的私有方法

    如何在C++類的外部調(diào)用類的私有方法

    這篇文章主要介紹了如何在C++類的外部調(diào)用類的私有方法,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09
  • QT實(shí)現(xiàn)串口通信的完整步驟

    QT實(shí)現(xiàn)串口通信的完整步驟

    如果用qt寫(xiě)程序作為上位機(jī),然后通過(guò)和usb和下位機(jī)通信的時(shí)候,就需要用到qt中的串口通信了,下面這篇文章主要給大家介紹了關(guān)于QT實(shí)現(xiàn)串口通信的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 詳解C++函數(shù)類型與重載函數(shù)

    詳解C++函數(shù)類型與重載函數(shù)

    這篇文章主要為大家介紹了C++函數(shù)類型與重載函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-11-11
  • C語(yǔ)言中用于產(chǎn)生隨機(jī)數(shù)的函數(shù)使用方法總結(jié)

    C語(yǔ)言中用于產(chǎn)生隨機(jī)數(shù)的函數(shù)使用方法總結(jié)

    這篇文章主要介紹了C語(yǔ)言中用于產(chǎn)生隨機(jī)數(shù)的函數(shù)使用方法總結(jié),分別介紹了rand()函數(shù)和srand()函數(shù)以及封裝出的arc4random()函數(shù),需要的朋友可以參考下
    2016-05-05
  • C++四種強(qiáng)制轉(zhuǎn)換原理與價(jià)值

    C++四種強(qiáng)制轉(zhuǎn)換原理與價(jià)值

    這篇文章主要介紹了C++的四種強(qiáng)制轉(zhuǎn)換原理與價(jià)值,文中介紹的非常詳細(xì),對(duì)學(xué)習(xí)C語(yǔ)言有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2023-04-04
  • C++中的erase()函數(shù)用法小結(jié)

    C++中的erase()函數(shù)用法小結(jié)

    本文主要介紹了C++中的erase()函數(shù)用法小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • C++實(shí)現(xiàn)LeetCode(81.在旋轉(zhuǎn)有序數(shù)組中搜索之二)

    C++實(shí)現(xiàn)LeetCode(81.在旋轉(zhuǎn)有序數(shù)組中搜索之二)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(81.在旋轉(zhuǎn)有序數(shù)組中搜索之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評(píng)論

孟连| 古交市| 安仁县| 永清县| 威信县| 江门市| 昭苏县| 禄劝| 芜湖市| 柳林县| 大兴区| 兴化市| 古蔺县| 莱州市| 雷波县| 佳木斯市| 晋城| 安福县| 德令哈市| 德令哈市| 邯郸县| 灯塔市| 日照市| 朔州市| 桐庐县| 西华县| 闸北区| 阿克| 县级市| 房产| 美姑县| 红河县| 友谊县| 师宗县| 孟州市| 乐陵市| 西安市| 华宁县| 方正县| 枣强县| 盘山县|