| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 标准C语言12 -> 正文阅读 |
|
[C++知识库]标准C语言12 |
文件的分类: ????文本文件:?存储的是ASCII码的二进制(人能看懂) ????二进制文件:?存储的是数据的补码 文件IO: ????FILE*?fp?=?fopen(const?char*?path,const?char*?mode); ????功能:?打开或创建文件 ????path:?文件的路径 ????mode:?打开的模式 ????????r???以只读权限打开文件,如果文件不存在则打开失败 ????????r+??在r的基础上增加写权限 ????????w???以只写权限打开文件,如果文件不存在则新建,如果文件存在就清空 ????????w+??在w的基础上增加读权健 ????????a???以只写权限打开文件,如果文件不存在则新建,如果文件存在则不清空,新写入的数据在文件的末尾 ????????a+??在a的基础上增加读权限 ????注意:?以上方式以文本形式操作文件,在它们基础上加b表示以二进制方式操作文件 ????返回值:?结构指针,也称为文件指针,不需要关心它的成员,只需要知道它是操作文件的凭证,如果值是NULL表示文件操作失败 ????int?fclose(FILE*?fp); ????功能:?关闭文件 ????二进制方式读写文件: ????????fwrite ????????????size_t?fwrite(const?void*?ptr,size_t?size,size_t?nmemb,FILE*?stream); ????????????????????功能:?把内存中的数据写入到文件中 ????????????????????ptr:?内存首地址 ????????????????????size:?一次写入多少个字节 ????????????????????nmemb:?写入多少次 ????????????????????stream:?文件指针,fopen的返回值 ????????????????????返回值:?成功写入的次数 练习1:?定义一个教师结构体变量并初始化,以二进制形式写入文件中(以二进制方式写) ???? ????????fread ????????????size_t?fread(void*?ptr,size_t?size,size_t?nmemb,FILE*?stream); ????????????????????功能:?从文件中读取数据到内存中 ????????????????????ptr:?存储从文件中读取的数据内存首地址 ????????????????????size:?一次读取的字节 ????????????????????nmemb:?读取多少次 ????????????????????stream:?文件指针,fopen的返回值 ????????????????????返回值:?成功读取到的次数 练习2:?从文件中读取数据到一个教师结构体变量中并显示(以二进制方式读) ????文本方式读写文件: ????????int?fprintf(FILE*?stream,const?char*?format,...); ????????功能:?以文本形式写入数据到文件中 ????????stream:?要写入的文件 ????????format:?占位符和提示信息 ????????...:?变量列表 ????????返回值:?成功写入的字节数 ????????int?fscanf(FILE*?stream,const?char*?format,...); ????????功能:?从文件中读取数据到变量中 ????????stream:?要读取的文件指针 ????????format:?占位符 ????????...:?变量地址列表 ????????返回值:?成功读取到的变量个数 练习3:?定义一个教师结构体变量并初始化,以文本形式写入到文件中 练习4:?从文件中以文本形式读取到教师结构体中并显示 ????文件的随机读写: ????????文件的位置指针: ????????????每个打开的文件都有一个指针记录着操作的位置,它会随着读写函数的执行而移动,以r、r+、w、w+模式打开文件位置指针在开头,以a、a+打开文件位置指针在文件末尾 ????????如果想要随机读写文件的任意位置的数据,只需要手动设置文件的位置指针即可 ????????int?fseek(FILE*?stream,long?offset,int?whence); ????????功能:?设置文件的位置指针 ????????stream:?要设置的文件 ????????offset:?偏移值 ????????whence:?基础位置 ????????????SEEK_SET????文件开头 ????????????SEEK_CUR????当前位置 ????????????SEEK_END????文件末尾 ????????返回值:?成功返回0、失败返回-1 ????????void?rewind(FILE*?stream); ????????功能:?把文件位置指针设置到开头 ????????long?ftell(FILE*?stream); ????????功能:?获取文件位置指针的位置 ????????返回值:?第几个字节 ????????int?feof(FILE*?stream); ????????功能:?检查文件位置指针是否到达末尾 ????????返回值:?返回0说明到达文件末尾 ????????char*?fgets(char*?s,int?size,FILE*?stream); ????????stdout:?从文件中读取一行字符串 ????????int?fputs(const?char*s,FILE*?stream); ????????功能:?写入一个字符串到文件中,自动在末尾添加\n ????????返回值:?成功写入的字符个数 ????????int?remove(const?char*?pathname); ????????功能:?删除文件 ????????返回值:?成功返回0,失败返回-1 ????????int?rename(const?char*?oldpath,const?char*?newpatch); ????????功能:?重命名文件 ????????返回值:?成功返回0,失败返回-1 main函数的参数: ????是为了获取命令行附加的参数 ????argc:?代表参数的个数 ????argv:?每个字符串参数的首地址 ????注意:?./a.out一定是第一个参数 练习5:?实现cp命令的功能 ????cp?src?dest ????1、以r打开src文件,以w创建dest文件 ????2、边读边写,知道文件读到末尾结束 ????3、关闭文件 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:08:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |