今天开始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. 有两个数a,b,请写一个函数交换a,b

    题目:有两个数a,b,请写一个函数交换a,b,具体实现如下: #include<stdlib.h> #include<stdio.h> int swap(int * pA, i ...

  2. HDOJ 2089 不要62(打表)

    Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来 ...

  3. Android之路-------传说中的大喇叭(广播接收器)

    前言 没想到离上一篇博文的时间已经有一个多星期了,时间真的不等人啊,在这里LP告诉你们一个道理,如果现在有谁正在看管理时间的书,那么请你们把这些书放下吧,看了也没有用,因为时间我们根本管不了,我们只能 ...

  4. sql server 主从数据库同步 利用发布 订阅是实现

    发布订阅功能自SQL 2005之后就有了 配置方法可参考:http://blog.csdn.net/wanmdb/article/details/7515277 遇到问题: 1. 如果代理无法启动 , ...

  5. maven,本地仓库和私服nexus的配置,以及eclipse载入maven

    首先可以进入http://maven.apache.org/官网查看如何配置 一.配置环境 1 确定自己的java运行环境配置正确-->在cmd运行 java -version或echo %JA ...

  6. 史上最全maven pom.xml详解

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  7. Py3快速下载地址

    pip3.exe install 包名称 -i  http://mirrors.aliyun.com/pypi/simple  --trusted-host mirrors.aliyun.com

  8. Drupal 实战

    <Drupal 实战> 基本信息 作者: 葛红儒    丛书名: 实战系列 出版社:机械工业出版社 ISBN:9787111429999 上架时间:2013-6-28 出版日期:2013 ...

  9. 在自己电脑上建立SVNserver

    转载处:http://blog.csdn.net/shmily570/article/details/8227690 传统的Subversionserver配置方法: 一.准备工作 1.获取 Subv ...

  10. [Javascript] Advanced Function Scope

    Something like 'for' or 'while', 'if', they don't create a new scope: ,,]; ; i < ary.length; i++) ...