MINAIot  

链表:
节点定义:
//数据域的声明
typedef struct studentInfo
{
char name[16];
int age;
char sex;
int grade;
}stuInfo;

//节点的声明
typedef struct node
{
	struct studentInfo data;	//数据域
	struct node *pNext;			//指针域 ---> 存储下一节点地址
}Node;

文件操作:
Linux 下一切皆文件
(1)文件概述
一组相关数据的有序集合,称之为文件!

(2)文件指针
C语言中用一个指针指向文件,这个指针我们称之为文件指针,
通过这个指针我们就可以对文件进行各种操作

文件指针的一般定义形式:
	FILE *指针变量名称;
注意:
	FILE 必须大写,它是由系统定义的结构,该结构含有文件名,文件状态和文件当前位置等信息
	编写程序时可不必在意这些细节

(3)文件的打开和关闭
打开文件
读写文件
关闭文件

其中,文件内部的数据为了标记文件的结束,文件结尾处有一个宏定义的 EOF(End Of File)
结束符号,判断文件有没有读取完毕,就是判断 EOF 的值

文件打开:fopen()

 FILE *fopen(const char *path, const char *mode);
	path:文件所在的路径
	mode:打开文件的方式
	
	打开文件失败,则返回 NULL

	系统自动打开和关闭的五个标准文件
	文件号    文件指针
		0  		stdin(标准输入)
		1		stdout(标准输出)
		2       stderr(标准错误)
		3       stdaux(标准辅助)
		4       stdprn(标准打印)
		
文件关闭:fclose()
	int fclose(FILE *stream);
	返回值:正常返回 0 ,出错返回非 0
	
	关闭文件则断开文件指针与文件之间的联系,也即禁止再对文件进行操作

	不关闭文件,可能会导致有些数据不会保存到磁盘。

文件的使用方式:
	r 读
	w 写
	a 追加
	
	t 文本文件    b 二进制文件   + 读和写

	mode
	r       读取   必须保证文件存在
	w       写入    不存在时,新建文件,存在时则清空文件内容,重写写入
	a       追加   是在文件末尾添加数据
	w+	r+  读写操作

	rb+  已读写形式打开二进制文件
	wt+  以读写形式打开文本文件

(4)文件读写操作
fgetc()/fputc():字符读写函数
fgets()/fputs():行读写函数
fread()/fwrite():块读写

字符读写函数:
字符输出:fputc
	int putc(int c, FILE *stream); //写文件
字符输入:fgetc
	int getc(FILE *stream);  //读文件

行读写:
	行读取:从文件流读取size个字节到 s
		char *fgets(char *s, int size, FILE *stream);
	行写入:将字符串 s 写入文件
		int fputs(const char *s, FILE *stream);

块读写:
	块读取:fread()
		
	块写入:fwrite()
	
	//从右向左读取
   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);

	ptr:指向要输入/输出数据存储区的指针
	size:每个要读写的数据块的大小
	nmemb:要读写的块的个数
	fp:要操作的文件指针

//将文件指针置于文件首
void rewind(FILE *stream);
posted on 2019-12-08 13:05  MINAIot  阅读(79)  评论(0编辑  收藏  举报