今天开始C语言中的重点难点就基本上技术忘了,但是还有最后一个知识点不得不提,那就是文件操作。

我们都知道,我们每天都在使用电脑,手机,或者其他电子或者移动设备,其实我们在使用的时候每时每刻都在执行文件操作这异一步,只是这里面的细节我们可能清楚,那么今天我就来给大家讲讲什么是C语言的文件操作。

一:文件操作介绍

文件操作:通过程序操作文件
读:文件-〉内存
写:内存-〉文件

文件(file)其实就是存储在外部介质上数据的集合,我们就是使用相应的技术来对他让他实现我们想要达到的结果。

程序中经常有大量对文件的输入输出操作,它经常构成了程序的主要部分,因而C语言提供了很多输入输出的函数,它们分别用于两种类型文件输入输出系统:即由 ANSI标准定义的缓冲文件(也称标准文件(流)输入输出(I/O)系统);另一类是ANSI标准中没有定义的非缓冲文件(也称非标准文件(流)输入输出 (I/O)系统)。

这里需要使用一个头文件:stdlib.h

二:文件操作应用

1.打开一个文件

打开文件的时候有三个参数需要注意的:r(只读),w(写),a(追加)

#include <stdio.h>
main() 
{
  File *fp = fopen()先写一个文件
  FILE *fp; /*定义一个文件指针*/ 
  int i; 
  fp=fopen("wenjian", "rb"); /*打开当前目录名为wenjian的文件只读*/ 
  if(fp==NULL) /*判断文件是否打开成功*/ 
  puts("File open error");/*提示打开不成功*/ 
  i=fclose(fp); /*关闭打开的文件*/ 
  if(i==0) /*判断文件是否关闭成功*/ 
  printf("O,K"); /*提示关闭成功*/ 
  else 
  puts("File close error");/*提示关闭不成功*/ 
}

2.运行后产生一个text.dat的文件

#include<stdio.h> 
main() 

  char *s="That's good news"); /*定义字符串指针并初始化*/ 
  int i=617; /*定义整型变量并初始化*/ 
  FILE *fp; /*定义文件指针*/ 
  fp=fopne("test.dat", "w"); /*建立一个文字文件只写*/ 
  fputs("Your score of TOEFLis", fp);/*向所建文件写入一串字符*/ 
  fputc(':', fp); /*向所建文件写冒号:*/ 
  fprintf(fp, "%d\n", i); /*向所建文件写一整型数*/ 
  fprintf(fp, "%s", s); /*向所建文件写一字符串*/ 
  fclose(fp); /*关闭文件*/ 
}

关于拷贝一个文件,我只要先读到内存中,再写到另一个文件就可以实现了,当然还有其他的方法。。。。。!

三:文件操作总结

一批数据以文件的组织形式可以存放在外部介质(主要为磁盘,光盘等)上,也可从介质上读入内存.操作系统是以文件为单位对数字进行管理的.而各种C 的文件系统对其文件则可进行直接操作

由于程序中经常有大量对文件的输入输出操作,它经常构成了程序的主要部分,因而C语言提供了很多输入输出的函数,它们分别用于两种类型文件输入输出系统: 即由ANSI标准定义的缓冲文件(也称标准文件(流)输入输出(I/O)系统);另一类是ANSI标准中没有定义的非缓冲文件(也称非标准文件(流)输入 输出(I/O)系统)

下面是一些C最常用文件操作函数:

  1. fopen() 打开流
  2. fclose() 关闭流
  3. fputc() 写一个字符到流中
  4. fgetc() 从流中读一个字符
  5. fseek() 在流中定位到指定的字符
  6. fputs() 写字符串到流
  7. fgets() 从流中读一行或指定个字符
  8. fprintf() 按格式输出到流
  9. fscanf() 从流中按格式读取
  10. feof() 到达文件尾时返回真值
  11. ferror() 发生错误时返回其值
  12. rewind() 复位文件定位器到文件开始处
  13. remove() 删除文件
  14. fread() 从流中读指定个数的字符
  15. fwrite() 向流中写指定个数的字符
  16. tmpfile() 生成一个临时文件流
  17. tmpnam() 生成一个唯一的文件名
 
 
 
 

iOS开发——C篇&文件操作的更多相关文章

  1. iOS开发网络篇—文件的上传

    iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代 ...

  2. iOS开发——Swift篇&文件,文件夹操作

    文件,文件夹操作   ios开发经常会遇到读文件,写文件等,对文件和文件夹的操作,这时就可以使用NSFileManager,NSFileHandle等类来实现. 下面总结了各种常用的操作:   1,遍 ...

  3. iOS 开发http post 文件的上传

    iOS开发网络篇—文件的上传 说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中.本文介绍如何不借助第三方框架实现iOS开发中得文件上传. 由于过程较为复杂,因此本文只贴出部分关键代 ...

  4. iOS开发拓展篇—封装音频文件播放工具类

    iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...

  5. iOS开发网络篇—大文件的多线程断点下载

    http://www.cnblogs.com/wendingding/p/3947550.html iOS开发网络篇—多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了同时 ...

  6. iOS开发UI篇—Quartz2D使用(矩阵操作)

    iOS开发UI篇—Quartz2D使用(矩阵操作) 一.关于矩阵操作 1.画一个四边形 通过设置两个端点(长和宽)来完成一个四边形的绘制. 代码: - (void)drawRect:(CGRect)r ...

  7. iOS开发网络篇—大文件的多线程断点下载(转)

    http://www.cnblogs.com/wendingding/p/3947550.html   iOS开发网络篇—多线程断点下载 说明:本文介绍多线程断点下载.项目中使用了苹果自带的类,实现了 ...

  8. iOS开发UI篇—CAlayer(自定义layer)

    iOS开发UI篇—CAlayer(自定义layer) 一.第一种方式 1.简单说明 以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的Draw ...

  9. iOS开发多线程篇—多线程简单介绍

    iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcod ...

随机推荐

  1. BZOJ1984: 月下“毛景树”

    1984: 月下“毛景树” Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 713  Solved: 245[Submit][Status] Descri ...

  2. 查找最小的K个元素,使用最大堆。

    查找最小的K个元素,使用最大堆,具体代码如下: #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace st ...

  3. (转载)apc_fetch

    (转载)http://php.net/manual/zh/function.apc-fetch.php apc_fetch (PECL apc >= 3.0.0) apc_fetch — 从缓存 ...

  4. 【规律】【贪心】【数学】HDU 5573 Binary Tree

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5573 题目大意: 从1走到第k层,下一层的数是上一层的数*2或者*2+1,可以选择加上或者减去走的数 ...

  5. Sql自动生成字母加数字的随机数

    /* select char(65+ceiling(rand()*25)) --随机字母(大写) select char(97+ceiling(rand()*25)) --随机字母(小写) selec ...

  6. 《算法问题实战策略》-chaper7-穷举法

    关于这一章节<算法实战策略>有一段概述问题,我认为对于编程人员来说非常有价值,故在这里进行如下的摘抄: 构想算法是很艰难的工作.相比大家都经历过,面对复杂的要求只是傻乎乎地盯着显示器,或者 ...

  7. Linux编程之自定义消息队列

    我这里要讲的并不是IPC中的消息队列,我要讲的是在进程内部实现自定义的消息队列,让各个线程的消息来推动整个进程的运动.进程间的消息队列用于进程与进程之间的通信,而我将要实现的进程内的消息队列是用于有序 ...

  8. 在mac上利用homebrew安装软件

    在mac经常需要安装一些软件,你可以通过app store下载,或者可以通过浏览袭搜索下载.这里介绍通过homebrew安装一些软件,它会自动为你下载一些软件的相关依赖,免去安装的烦恼. 首先我们需要 ...

  9. Android Studio 2.1.x 关联SDK API Source

    问题: 看图=>,当在android studio里ctrl+鼠标左键查看例如: TextUtils.isEmpty(content);这段代码的isEmpty方法的实现的时候经常就跑到如图所示 ...

  10. 坑爹火狐浏览器会记录表单数据,导致服务器控件点击事件出bug

    解决方案:在form表单加入 autocomplete="off".