C语言实现的文件交互
- 计算机与外部设备的交互依靠文件完成
文件是记录在外部介质上的数据的集合;例如1.c 是源码 1.exe可执行的文件
- 文件的分类
按组织结构:
记录文件:有一定结构的文件,可以解析成字段值的文件;
流式文件:对于源代码一类的属于流式文件(由一个个字符,字节按顺序组成) 按存储介质:
普通文件---存储介质文件(磁盘,磁带)
设备文件---非存储介质如显示器,键盘 打印机 按组织形式:
二进制文件:数据按其在内存中的原始形态存放 如果存入123 直接换算成二进制形式
文本文件:ASCII文件每个字节存放一个字符的ASCII 码(例如在文本写入123 1对应ASCII 49 2对应50 3对应51 分别把49,50,51换算为二进制,并存入字节)
文件的出现便于信息共享,数据和程序分离,数据的改变不影响程序的改变,文件还便于保存中间结果
- 文件的标识符
也就是文件的后缀名,什么样的文件用什么样的标识符,由操作系统决定
- 流
简化了编程的过程,操作,读写设备就是操作,读写数据的过程,是否正确输入/输出了数据,流可以屏蔽技术细节,主要用于设备文件和系统的通信,只要按照统一接口,就可以操作设备,数据搬运的过程就是流,
无须关心I/O设备
- 文件处理
缓冲文件系统
下载文件十分伤害磁盘,这时文件缓冲区就派上了用场,不妨下载到一定程度,一并写入磁盘,主要是提升磁盘的寿命
.系统开辟内存缓冲区 .用户自己设定文件缓冲区
比如我们可以通过重定向把文件输出到相关设备文件
非缓冲文件系统
- 文件类型指针
void main()
{
char words[] = "喜欢企鹅人和谜语人\n";
fputs(words, stdout);//stdout就是屏幕显示器
FILE *p = stdout;
fputs("哦~尼格码!where are you?\n",p);
system("pause");
}

C语言实现的文件交互的更多相关文章
- (转)python中调用R语言通过rpy2 进行交互安装配置详解
python中调用R语言通过rpy2 进行交互安装配置详解(R_USER.R_HOME配置) 2018年11月08日 10:00:11 luqin_ 阅读数:753 python中调用R语言通过r ...
- c语言中的文件流
一.打开和关闭文件 #include int main( void ) { FILE* pReadFile = fopen( "E:\\mytest.txt", "r&q ...
- C语言样式的文件操作函数
使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 FILE* fd = fopen(filename ...
- c语言的头文件-不是c++类的头文件?
下面的概述是参考的这篇文章:http://blog.csdn.net/bingxx11/article/details/7771437 c语言编程中也有,也需要头文件, 头文件不只是C++的类才需要! ...
- C语言库函数--操作文件
//C库函数读取文件的代码 I/O缓冲机制 C语言库函数写文件都是写在内存中,然后一次写入磁盘.提高了效率. 读写文件,不对系统进行操作,一般采用C语言库函数.移植可以在任何可以对C支持的操作系统,而 ...
- Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解
上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #in ...
- C语言处理CSV文件的方法(一)
什么是CSV文件 CSV是 Comma-separated values (逗号分隔值)的首字母缩写,它通常是以逗号且不仅限于逗号分隔各个值,我们都叫他CSV. 看下面的例子: China, Shan ...
- Unix/Linux环境C编程新手教程(41) C语言库函数的文件操作具体解释
上一篇博客我们解说了怎样使用Linux提供的文件操作函数,本文主要解说使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #in ...
- C语言检测指定文件是否存在的代码
内容之余,将做工程过程中比较常用的一些内容片段珍藏起来,下面资料是关于C语言检测指定文件是否存在的内容,希望能对小伙伴们有所用. #include <stdbool.h> #include ...
随机推荐
- [转帖]CentOS 8.0.1905 和CentOS Stream(滚动发行)正式发布
CentOS 8.0.1905 和CentOS Stream(滚动发行)正式发布 https://zhuanlan.zhihu.com/p/84001292 还发现openssl 的 版本太高 不兼容 ...
- Jmeter 跨线程组传递参数 之两种方法(转)
终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...
- Word 查找替换高级玩法系列之 -- 段首批量添加字符
打开「查找和替换」输入框,按照下图操作: 更多查找替换高级玩法,参看:Word查找替换高级玩法系列 -- 目录篇 未完 ...... 点击访问原文(进入后根据右侧标签,快速定位到本文)
- python学习-18 元组
tuple 1.元组tuple类似列表,由小括号()括住,其中的元素不可被修改,不能被增加或删除. tu = (222,222123123,("小胡子",444),12341,&q ...
- 纯css实现移动端横向滑动列表&&overflow:atuo;隐藏滚动条
<!DOCTYPE html> <html> <head> <title>横向滑动</title> <style type=" ...
- css 学习笔记 常用到的知识
做 loading 居中 剧中通常就是 top left 50% 再调一下自己就可以了 关键是要有 width height 遇到一些base on content 决定 height 的情况一般上有 ...
- 使用UTF8字符集存储中文生僻字
使用UTF8字符集存储中文生僻字 一.相关学习BLOG https://www.cnblogs.com/jyzhao/p/8654412.html http://blog.itpub.net/7818 ...
- 给初学PHP的学习线路和建议
直入主题 1.熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作简单的网页,对元素属性相对熟悉. 2.理解动态语言的概念和运做机制,熟悉基本的PHP语法. 3.学习如何将PHP与HTML结 ...
- hdu 4745 two Rabits
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4745 题解:首先要抽象出题目要求的是啥.首先对于环的问题, 我们可以倍增成链,然后环的所有情况可以通过链来 ...
- (八)SpringBoot之freeMarker基本使用
一.案例 1.1 pom.xml <dependencies> <!-- 除去logback支持 --> <dependency> <groupId>o ...