汕头服饰网站建设,宁波如何做seo排名优化,注册安全工程师官网,敬请期待前一句1、文件操作
1.1、文件概念
文件#xff1a;实现数据存储的载体
1.2、文件的分类
按照数据的组织形式分类#xff1a; 1.字符文件/文本文件 2.二进制文件
按照用途分类#xff1a; 1.系统文件 2.库文件--标准库文件/非标准库文件#xff08;第三方库#xff09; 3.用…1、文件操作
1.1、文件概念
文件实现数据存储的载体
1.2、文件的分类
按照数据的组织形式分类 1.字符文件/文本文件 2.二进制文件
按照用途分类 1.系统文件 2.库文件--标准库文件/非标准库文件第三方库 3.用户文件
Linux下的文件分类 - 普通文件 d 目录文件/文件夹 s 套接字文件 p 管道文件 l(小写的 L) 链接文件 c 字符设备文件 b 块设备文件 1.3、文件操作相关的函数 函数man1 一般是指令 man2 一般是系统相关函数 man3一般是C语言标准库函数 文件操作相关流程 1.打开文件--仅仅得到一个文件描述符 2.写/读--用函数操作文件描述符 3.关闭文件
1.3.1 打开文件 函数的头文件为#includestdio.h 函数名fopen 函数原型FILE *fopen(const char *pathname, const char *mode); 形参pathname路径下的文件名 mode打开文件的模式 “r” 只读的方式打开 光标在文件开头 文件不存在 打开失败 “r” 读写的方式打开 光标在文件开头 文件不存在 打开失败 “w” 只写的方式打开 光标在文件开头 文件不存在 创建并打开 文件存在 清空 写 “w” 读写的方式打开 光标在文件开头 文件不存在 创建并打开 文件存在 清 空写 “a” 追加写 光标在文件末尾 文件如果不存在 创建并打开 “a” 可读可写 根据你第一次操作该文件来确定光标位置 第一次如果是读光标默认在文件开头第一次如果是写光标在文件末尾
返回值
成功返回FILE*类型的文件描述符
失败NULL;
#includestdio.h
int main()
{FILE*fpfopen(./1.txt,r);if(fpNULL){printf(文件打开失败);return ;}return;
}
如果1.txt是存在的打开成功后续fp就代表1.txt这个文件
如果1.txt是不存在的打开失败 插入perror--打印失败信息 头文件#includestdio.h 函数原型void perror(const char *s); 形参s--提供一个字符串即可 功能打印距离它最近的函数执行失败的原因注意这个离它最近的函数指的是从上到下的近。 1.3.2 关闭函数 头文件#includestdio.h 函数原型int fclose(FILE *stream); 形参stream用fopen打开文件得到的文件描述符 返回值 成功返回0 失败返回-1 1.3.3 读和写函数
1单字符的读和写 单字符的写fputc 头文件#includestdio.h 函数原型int fputc(int c, FILE *stream); 形参c--传入char类型的单字符 将字符c写到文件指针所指向的文件的当前写指针的位置 stream--文件描述符 返回值 成功返回写入的单字符 失败返回-1 单字符的读fgetc 头文件#includestdio.h 函数原型int fgetc(FILE *stream); 形参 stream-文件描述符 返回值 成功 读取到的单字符 用 char 类型来承接 失败/读到文件末尾 -1 插入 rewind 光标偏移至文件开头 void rewind(FILE *stream); stream fopen 的返回值 功能 光标偏移至文件开头 2 字符串的读和写 字符串的写fputs 函数原型int fputs(const char *s, FILE *stream); 形参 s 要写入文件中的字符串的首地址 stream fopen 的返回值 返回值 成功返回一个非负数 通常为 1 失败返回-1 字符串的读 fgets 函数原型char *fgets(char *s, int size, FILE *stream); 形参 s 读取到的内容存放的位置的首地址 size 你要读多大 stream fopen 的返回值 返回值 成功 char * -- 依旧是 s 失败 NULL C语言默认打开的三个文件 标准输入文件描述符--stdin--对应键盘 标准输出文件描述符--stdout--对应屏幕 标准出错文件描述符--stderr--对应屏幕 3格式化的读和写 格式化写入fprintf fprintffopen返回值“原样输出格式控制符”输出列表 注意fprintf(stdout,“hello\n”); printf(“hello\n”); 格式化读取fscanf 要求fscanf从文件中读要求格式和fprintf写入时一模一样 这两个函数必须是配合使用的 举例说明
int a10,b20,c30;fprintf(fp,”%d-%d-%d\n”,a,b,c);int x,y,z;fscanf(fp,”%d-%d-%d\n”,x,y,z);
4 块读 块写二进制要配合使用 块写fwrite 函数原型size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE *stream); 形参ptr要写入的内容的首地址 size一次写多大 nmemb写几次 streamfopen的返回值 返回值真正写入的次数 块读fread 函数原型size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream) 形参ptr读取的内容存放的位置的首地址 size一次读多大 nmemb读几次 streamfopen的返回值 返回值成功真正读取的次数 遇到文件末尾返回0 光标偏移函数fseek 头文件#includestdio.h 函数原型int fseek(FILE *stream, long offset,int whence); 形参stream文件描述符 offset偏移量往文件末尾方向-往文件开头方向 whence相对位置 SEEK_SET 文件开头 SEEK_CUR 当前位置 SEEK_END 文件末尾 fseek(fp,0,SEEK_SET); rewind(fp); 以文件开头为起始位置 偏移 0 字节 ftell函数计算光标当前位置举例文件开头的偏移量 函数原型long ftell(FILE *stream); 形参stream文件描述符 返回值:光标当前位置举例文件开头的偏移量 程序中计算文件的大小 fesskfp0SEEK_END//光标达到文件末尾 long numftellfp//num就是文件大小