今天开始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. BZOJ1511: [POI2006]OKR-Periods of Words

    1511: [POI2006]OKR-Periods of Words Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 174  Solved: 92[Su ...

  2. Javascript语法基础

    Javascript语法基础   一.基本数据类型   JavaScript中支持数字.字符串和布尔值三种基本数据类型: 1.数字 数字型是JavaScript中的基本数据类型.在JavaScript ...

  3. Hadoop FileInputFormat实现原理及源码分析

    FileInputFormat(org.apache.hadoop.mapreduce.lib.input.FileInputFormat)是专门针对文件类型的数据源而设计的,也是一个抽象类,它提供两 ...

  4. K - Leapin' Lizards - HDU 2732(最大流)

    题意:在一个迷宫里面有一些蜥蜴,这个迷宫有一些柱子组成的,并且这些柱子都有一个耐久值,每当一只蜥蜴跳过耐久值就会减一,当耐久值为0的时候这个柱子就不能使用了,每个蜥蜴都有一个最大跳跃值d,现在想知道有 ...

  5. 怎样绕过oracle listener 监听的password设置

     怎样绕过oracle 监听的password设置: 1.找到监听进程pid ,并将它kill 掉 ps -ef|grep tns [oracle@lixora admin]$ ps -ef|gr ...

  6. Python标准库:内置函数bytearray([source[, encoding[, errors]]])

    返回一个新字节数组.这个数组里的元素是可变的.而且每一个元素的值范围: 0 <= x < 256.能够通过"字节与字节数组操作"章节来查看相关字节数组的内容.以下说明一 ...

  7. Com编程入门——什么是COM,如何使用COM

    本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念.内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件.本文不包括如何编写自己的COM对象和接口. CO ...

  8. Java基础知识强化26:Object类之hashCode()方法、getClass()方法

    1. Object类的hashCode()方法,如下: public  int  hashCode():返回该对象的哈希码值,这个值和地址值有关,但是不是实际地址值(哈希码值是根据实际地址值转化过来的 ...

  9. gulp入门学习

    一.gulp简介 gulp是一个自动化构建工具.在开发过工程中,能够使用gulp对项目进行自动构建,大大提高工作效率. 二.安装gulp 在安装gulp之前先要确认已经正确安装了node.js,然后在 ...

  10. java设计模式---享元模式

    享元模式 顾名思义:共享元对象.如果在一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必为每一次使用创建新的对象. 享元模式是为数不多的.只为提升系统性能而生的设计模式.它的主要作用就 ...