那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言_文件IO操作函數總結

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 09:53 ? 次閱讀

1. 文件IO總結

文件IO操作:  對文件系統里的文件進行:  打開、創建、讀、寫、關閉等運用。
C語言下標準文件IO接口(函數): 
(1)頭文件:  stdio.h    輸入輸出函數:  printf 、scanf
(2)相關函數:  fopen、fread、fwrite、fclose
2.1 標準文件操作有兩套函數:
1.標準C語言下的文件操作接口。fopen系列
常用于:  對普通文件的讀寫。
2.Linux操作系統下的文件操作接口。open系列
常用于:  對設備文件進行讀寫。 (鼠標、鍵盤、聲卡、..)

2. C語言標準文件操作接口

2.1 最常用的4個函數

#include 
//打開文件
FILE *fopen(const char *path, const char *mode); 
//讀文件
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
//寫文件
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
//關閉文件
int fclose(FILE *fp);

2.3 寫函數的基本運用

#include 
#include 
#include 

int main()
{
	FILE *file;
	int cnt;
	/*1. 打開文件*/
	file=fopen("D:/123.txt","a+b");
	if(file==NULL)
	{
		printf("文件打開失敗!\n");
		return -1;
	}
	/*2. 寫數據*/
	cnt=fwrite("1234567890",1,10,file);
	
    /*3. 關閉文件*/
	fclose(file);

	printf("cnt=%d\n",cnt);
	return 0;
}

2.4 讀函數基本運用

#include 
#include 
#include 

int main()
{
	FILE *file;
	int cnt;
	char buff[100];

	/*1. 打開文件*/
	file=fopen("D:/123.txt","rb"); //malloc
	if(file==NULL)
	{
		printf("文件打開失敗!\n");
		return -1;
	}
	/*2. 寫數據*/
	cnt=fread(buff,1,100,file);
	
    /*3. 關閉文件*/
	fclose(file);  //free 

	buff[cnt]='\0';
	printf("%s\n",buff);
	printf("cnt=%d\n",cnt);
	return 0;
}

2.5 文件指針位置偏移 (自動向后偏移)

#include 
#include 
#include 
int main()
{
	FILE *file;
	int cnt;
	char data;

	/*1. 打開文件*/
	file=fopen("D:/123.txt","rb"); //malloc
	if(file==NULL)
	{
		printf("文件打開失敗!\n");
		return -1;
	}
	/*2. 讀數據---驗證文件指針是否可否自動向后偏移*/
	cnt=fread(&data,1,1,file);
	printf("data=%c\n",data);
	cnt=fread(&data,1,1,file);
	printf("data=%c\n",data);
	cnt=fread(&data,1,1,file);
	printf("data=%c\n",data);
	cnt=fread(&data,1,1,file);
	printf("data=%c\n",data);
	cnt=fread(&data,1,1,file);
	printf("data=%c\n",data);

    /*3. 關閉文件*/
	fclose(file);  //free 
	return 0;
}

2.6 設置文件指針位置

#include 
#include 
#include 
int main()
{
	FILE *file;
	int cnt;
	char data;

	/*1. 打開文件*/
	file=fopen("D:/123.txt","rb"); //malloc
	if(file==NULL)
	{
		printf("文件打開失敗!\n");
		return -1;
	}
	/*2. 偏移文件指針*/
	fseek(file,5,SEEK_SET);

	/*3. 讀數據---驗證文件指針是否可否自動向后偏移*/
	cnt=fread(&data,1,1,file);
	printf("data=%c\n",data);

    /*4. 關閉文件*/
	fclose(file);  //free 
	return 0;
}

2.7 以上午所學的函數,如何判斷文件讀完了?到文件結尾?


#include 
#include 
#include 
int main()
{
	FILE *file;
	int cnt;
	char data;

	/*1. 打開文件*/
	file=fopen("D:/123.txt","rb"); //malloc
	if(file==NULL)
	{
		printf("文件打開失敗!\n");
		return -1;
	}
	/*2. 偏移文件指針*/
	fseek(file,5,SEEK_SET);

	/*3. 讀數據---驗證文件指針是否可否自動向后偏移*/
	while(1)
	{
		cnt=fread(&data,1,1,file);
		if(cnt!=1)break;
		printf("data=%c\n",data);
	}
    /*4. 關閉文件*/
	fclose(file);  //free 
	return 0;
}

2.8 文件讀寫結構體數據

//寫結構體數據
#include 
#include 
#include 
struct MyStruct
{
	int a;
	int b;
	char c[100];
};

int main()
{
	FILE *file;
	int cnt;
	struct MyStruct stu={666,888,"C語言文件操作學習"};

	/*1. 打開文件*/
	file=fopen("D:/123.txt","wb"); 
	if(file==NULL)
	{
		printf("文件打開失敗!\n");
		return -1;
	}

	/*2. 讀數據*/
	cnt=fwrite(&stu,1,sizeof(struct MyStruct),file);
	printf("cnt=%d\n",cnt);

    /*3. 關閉文件*/
	fclose(file);  //free 
	return 0;
}

//讀結構體數據
#include 
#include 
#include 
struct MyStruct
{
	int a;
	int b;
	char c[100];
};

int main()
{
	FILE *file;
	int cnt;
	struct MyStruct stu;

	/*1. 打開文件*/
	file=fopen("D:/123.txt","rb"); 
	if(file==NULL)
	{
		printf("文件打開失敗!\n");
		return -1;
	}

	/*2. 讀數據*/
	cnt=fread(&stu,1,sizeof(struct MyStruct),file);
	printf("cnt=%d\n",cnt);

	printf("%d,%d,%s\n",stu.a,stu.b,stu.c);
    /*3. 關閉文件*/
	fclose(file);  //free 
	return 0;
}

2.9 文件操作的作業練習

1.  學習文件基本讀寫使用
2.  編寫文件拷貝程序。 實現文件拷貝。
3.  文件加密解密實現。 需要編寫一個菜單。
4.   完善學生管理系統。
需要將所有學生信息保存到文件里,完善功能。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137704
  • 文件系統
    +關注

    關注

    0

    文章

    287

    瀏覽量

    19974
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62968
收藏 人收藏

    評論

    相關推薦

    C語言-文件編程

    這篇文章介紹C語言文件編程函數,案例代碼是在Linux環境下運行測試的分別介紹了C語言標準庫的
    的頭像 發表于 09-09 11:33 ?2069次閱讀

    C語言文件操作

    C語言中沒有輸入輸出語句,所有的輸入輸出功能都用 ANSI C提供的一組標準庫函數來實現。
    發表于 11-09 10:42 ?536次閱讀

    C語言函數如何返回多個數據

    C語言函數如何返回多個數據?這個操作在寫代碼的時候還經常遇到。
    發表于 07-25 10:53 ?991次閱讀

    linux基本操作C語言基礎

    目錄C語言基礎C++linux基本操作io操作數據結構進程線程網絡編程實戰項目
    發表于 12-17 07:53

    C語言標準庫函數

    C語言標準庫函數,使用C語言編程時,常用到的函數
    發表于 05-11 16:41 ?0次下載

    C語言字符串操作總結大全(超詳細)

    本文對c語言字符串的操作進行了詳細的總結分析,需要的朋友可以參考。
    發表于 11-15 14:19 ?2097次閱讀

    標準IO操作原理及操作函數相關資料下載

    標準IO操作原理及操作函數相關資料下載
    發表于 04-03 16:53 ?4次下載

    C語言數據輸入輸出函數總結資料免費下載

    本文檔的主要內容詳細介紹的是C語言數據輸入輸出函數總結資料免費下載。
    發表于 09-29 15:51 ?6次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>數據輸入輸出<b class='flag-5'>函數</b><b class='flag-5'>總結</b>資料免費下載

    C語言入門教學之函數資料總結免費下載

    本文檔的主要內容詳細介紹的是C語言入門教學之函數資料總結免費下載內容包括了:1 庫函數2 函數
    發表于 10-23 17:53 ?3次下載

    C語言教程之文件函數的詳細資料說明

    本文檔詳細介紹的是C語言教程之文件函數的詳細資料說明主要內容包括了:1.文件的基本概念,2.文本文件
    發表于 02-21 11:11 ?1次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>教程之<b class='flag-5'>文件</b><b class='flag-5'>函數</b>的詳細資料說明

    C語言編程文件操作函數庫匯總資源下載

    C語言編程文件操作函數庫匯總資源下載
    發表于 04-15 16:42 ?13次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>編程<b class='flag-5'>文件</b><b class='flag-5'>操作</b><b class='flag-5'>函數</b>庫匯總資源下載

    C語言編程常用的文件處理函數匯總下載

    C語言編程常用的文件處理函數匯總下載
    發表于 04-15 16:44 ?9次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>編程常用的<b class='flag-5'>文件</b>處理<b class='flag-5'>函數</b>匯總下載

    stm32中的io函數 STM32中的IO操作

    STM32系列單片機芯片的庫函數有很多種,而負責IO操作的庫函數是GPIO,GPIO函數在STM32單片機頭
    的頭像 發表于 07-22 15:29 ?1.3w次閱讀

    單片機IO操作總結

    單片機IO操作總結一、單片機IO口概述二、單片機IO操作1、輸入口使用2、輸出口使用三、關于
    發表于 11-05 13:06 ?31次下載
    單片機<b class='flag-5'>IO</b>口<b class='flag-5'>操作</b><b class='flag-5'>總結</b>

    c語言gets函數可以輸入數字嗎

    C語言中的gets函數是用來讀取字符串的,而不是用來讀取數字的。它會讀取輸入的字符直到遇到換行符或者文件結束符。因此,如果你嘗試使用gets函數
    的頭像 發表于 11-24 10:00 ?1660次閱讀
    在线玩轮盘| 圣保罗百家乐官网的玩法技巧和规则| 百家乐官网注码技术打法| 试玩百家乐官网的玩法技巧和规则| 百家乐是片人的吗| 百家乐tt赌场娱乐网规则| 全讯网娱乐| 赌场大亨| 长乐坊百家乐官网娱乐城| 重庆百家乐官网的玩法技巧和规则 | 景德镇市| 百家乐官网有没有单机版的| 百家乐输了100万| 威尼斯人娱乐城网站| 足球波胆| 赌博百家乐官网有技巧吗| 百家乐推荐怎么看| 威尼斯人娱乐城送| 治县。| 百家乐官网打水套利| 视频百家乐攻略| 大发888真人游戏平台| 营山县| 筹码百家乐官网的玩法技巧和规则| 蓝盾百家乐官网的玩法技巧和规则| 百家乐哪条路准| 快乐之都| 百家乐官网vshow| 大众百家乐的玩法技巧和规则| 快乐之都| 精通百家乐官网的玩法技巧和规则 | 宁阳县| 怎样打百家乐官网的玩法技巧和规则 | 全讯网a3322.com| 吉林市| 网上百家乐心得| 哪个百家乐投注好| 云顶国际网站| 成人百家乐官网的玩法技巧和规则 | 百家乐2号技术打法| 德州扑克 英文|