1、fopen(打开文件)

  表头文件 #include<stdio.h>

  定义函数 FILE *fopen(const char * path,const char * mode);

  path:字符串包含欲打开的文件路径及文件名, mode:文件访问类型。
  mode主要应用有:
  r      打开只读文件,该文件必须存在。
  r+    打开可读写的文件,该文件必须存在。
  w     打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
  w+    打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
  a    以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
  a+   以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

  例: FILE *pFile = NULL;
     pFile = fopen("C:\\1234.txt", "w+");
     if (NULL == pFile)
     {
        return -1;
     }
     fclose(pFile);

  注:打开文件时,会将文件中内容保存到缓冲区中,对于一般函数而言,都是程序与缓冲区之间操作。

2、fprintf (按指定格式将数据输出到文件中)

  表头文件:#include<stdio.h>

  函数原型:int fprintf(FILE *stream, char *format[, argument,...]);

  FILE* 一个FILE型的指针

  char* 格式化参数

  返回值:成功时返回转换的字节数,失败时返回一个负数 

  fprintf(pFile,"%s\n",str);

3、fscanf (按指定格式从文件中输入数据) 

  表头文件:#include<stdio.h>  

  函数原型:int fscanf(FILE *stream, char *format[,argument...]);  

  FILE* 一个FILE型的指针  

  char* 格式化参数  

  返回值:成功时返回转换的字节数,失败时返回一个负数  

  fscanf(pFile,"%s",str);

  需要注意的是:fscanf与fprintf如果在同一个范围内,需要使用fseek设置热点位置

4、fseek (移动文件焦点位置)

  表头文件 #include<stdio.h>

  定义函数 int fseek(FILE * stream,long offset,int whence);

  函数说明 fseek()用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。

  参数 whence为下列其中一种:

  SEEK_SET从距文件开头offset位移量为新的读写位置。SEEK_CUR 以目前的读写位置往后增加offset个位移量。

  SEEK_END将读写位置指向文件尾后再增加offset个位移量。

  当whence值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。

  下列是较特别的使用方式:
  1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);
  2) 欲将读写位置移动到文件尾时:fseek(FILE *stream,0,0SEEK_END);

  返回值 当调用成功时则返回0,若有错误则返回-1,errno会存放错误代码。

5、ftell (获取当前文件焦点位置)  

  表头文件 #include<stdio.h>

  定义函数 long ftell(FILE * stream);

  返回值:成功时则返回目前的读写位置,错误则返回-1,errno会存放错误代码。

  文件关闭后,文件焦点位置为0。

6、fread(从文件流读取数据)

  表头文件 #include<stdio.h>

  定义函数 size_t fread(void * ptr,size_t size,size_t count,FILE * stream);

  stream:为已打开的文件指针,ptr: 指向欲存放读取进来的数据空间,读取的字符数以参数count来决定。

  Fread()会返回实际读取到的count数目,如果此值比参数count来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。

返回值 返回实际读取到的count数目。

  注意:所有对文件内部操作的函数都会修改文件焦点。

7、fwrite (往文件流写入数据)

  表头文件 #include<stdio.h>

  定义函数 size_t fwrite(const void * ptr,size_t size,size_t count,FILE * stream);

  stream:为已打开的文件指针,ptr :指向欲写入的数据地址,size:一个元素的大小,count:元素个数

  返回值 返回实际写入的item数目。

  例: struct item str[5]; fwrite(str, sizeof(item),5,pFile);

  注:count为item个数,不是指所占字节数

8、feof (检查文件流是否读到了文件尾)

  定义函数 int feof(FILE * stream);

  返回值 返回非零值代表已到达文件尾。

9、fgetc (由文件中读取一个字符)

  函数原型 int fgetc(FILE * stream);

  返回值 :读取到的字符,若返回EOF则表示到了文件尾。

10、fgets(由文件中读取一字符串)

  定义函数 char* fgets(char *s, int size, FILE * stream);

  功能:从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。

  返回值 gets()若成功则返回s指针,返回NULL则表示有错误发生。

  例: char szBuf[32] = {0};
     fgets(szBuf,32,pFile);

11、fputc (往文件中写入一个字符)

   原型:int fputc(int c, FILE* stream);

   返回值:写入成功则返回写入字符,失败返回EOF

12、fputs (往文件中写入一个字符串)

  原型 int fputs(const char * s,FILE * stream);

   fputs()用来将参数s所指的字符串写入到参数stream所指的文件内。

  返回值 若成功则返回写出的字符个数,返回EOF则表示有错误发生。

13、fclose (关闭文件)

  原型 int fclose(FILE * stream);

  fclose()用来关闭先前fopen()打开的文件,此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。

  返回值 若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。

  错误代码 EBADF表示参数stream非已打开的文件。

  注:关闭文件时,将缓冲区数据保存到文件中。

C文件函数总结的更多相关文章

  1. PHP写文件函数

    /** * 写文件函数 * * @param string $filename 文件名 * @param string $text 要写入的文本字符串 * @param string $openmod ...

  2. PHP输出XML文件函数

    PHP输出XML文件函数 function xml_out($content, $charset = 'utf-8') { @header("Expires: -1"); @hea ...

  3. PHP多重判断删除文件函数

    <?function delete_file($file) {     if (file_exists($file))     {         $delete = chmod ($file, ...

  4. PHP常用文件函数和目录函数整理

    一.常用文件函数库 1.basename(); -- 返回路径中的文件名部分. string basename ( string $path [, string $suffix ] ) //给出一个包 ...

  5. BCB/Delphi中常用的VCL函数说明(文件函数)

    --------------------文件操作--------------------函数名称:ChangeFileExt函数说明:更改指定文件的扩展名,函数原型如下:AnsiString __fa ...

  6. 通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用

      前  言  PHP     学习了好久的PHP,今天做一个可以后台交互的登录页和注册页,没做什么判断,简单的了解一下. 具体的内容分析如下: ① PHP中的数据传输-->>由注册页传输 ...

  7. PHP 文件锁和常用文件函数

    文件锁 bool flock ( int handle, int operation [, int &wouldblock] );flock() 操作的 handle 必须是一个已经打开的文件 ...

  8. php总结7——文件函数库、序列化数据、文件包含

    7.1 文件函数库 php用来操作文件的 1) fopen    代开文件或URL 格式:resource fopen(string $filename, string $mode) 'r' 只读方式 ...

  9. PHP文件函数

    PHP文件函数 函数 描述 PHPbasename() 返回路径中的文件名部分. 3chgrp() 改变文件组. 3chmod() 改变文件模式. 3chown() 改变文件所有者. 3clearst ...

  10. Js文件函数中调用另一个Js文件函数的方法

    在项目中Js文件需要完成某一功能,但这一功能的大部分代码在另外一个Js文件已经完成,只需要调用这个文件实现功能.那么如何调用:一个Js文件函数中调用另一个Js文件函数的方法? (直接代码说明) 示例d ...

随机推荐

  1. 【HDOJ】3085 Nightmare Ⅱ

    双向BFS.注意,任何一个点出队后,首先需要考虑ghost. /* 3085 */ #include <iostream> #include <queue> #include ...

  2. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  3. 黄源河《左偏树的应用》——数字序列(Baltic 2004)

    这道题哪里都找不到. [问题描述] 给定一个整数序列a1, a2, … , an,求一个不下降序列b1 ≤ b2 ≤ … ≤ bn,使得数列{ai}和{bi}的各项之差的绝对值之和 |a1 - b1| ...

  4. HDOJ(HDU) 2503 a/b + c/d(最大公约数问题)

    Problem Description 给你2个分数,求他们的和,并要求和为最简形式. Input 输入首先包含一个正整数T(T<=1000),表示有T组测试数据,然后是T行数据,每行包含四个正 ...

  5. cocos2d的框架思路

    这是我第一次写cocos的框架思路哈,虽然只是写完了一个程序,按理来说应该再多写一些,多积累一些经验了再来写这个框架的构成,但是我觉得还是把我这次写代码的所有想法先记下来哈,等到以后继续写cocos的 ...

  6. 存储的一些基本概念(HBA,LUN)

    有些新手总是在各式各样的概念里绕来绕去,弄的不亦乐乎.所以我就把我的一些理解写了下来,供您参考.我说的不局限于任何一种具体产品和厂家,也可能有些说法和某些厂家的说法不一样,但是我觉得应该算的上是本原的 ...

  7. 安卓ListView操作的两种方法

    举例做一个微信的中间部分(好友消息等信息通知) 第一种:BaseAdapter() package com.example.wx; import java.util.ArrayList;import ...

  8. OpenMP并行程序设计

    1.fork/join并行执行模式的概念 2.OpenMP指令和库函数介绍 3.parallel 指令的用法 4.for指令的使用方法 5 sections和section指令的用法 1.fork/j ...

  9. C#中格式化数据的输出

    格式项都采用如下形式: {index[,alignment][:formatString]} 其中"index"指索引占位符,这个肯定都知道: ",alignment&q ...

  10. 高效实现 std::string split() API

    Qt下一个 QString 实现split()性能.和std::string未实现它的.STL也未实现.只有自己可以写一. #include <string> #include <v ...