1、用fopen打开文件

该函数的原型为FILE *fopen(const char *filename, const char *mode),第一个参数是文件名,第二个参数是打开文件的模式。

打开文件的模式主要是以下几种:

“r”以文本方式打开文件,只进行读操作

“w”以文本方式打开文件,只进行写操作

“a”以文本方式打开文件,只往其末尾添加内容

“rb”以二进制方式打开文件,只进行读操作

“wb”以二进制方式打开方式,只进行写操作

“ab”以二进制方式打开文件,只往其末尾添加内容

“r+”以文本方式打开文件,既读取其数据,也往文件中写入内容

“r+b”以二进制方式打开文件,既读取其数据,也往文件中写入内容

在对文件进行读写操作前,判断fopen的返回值是否为NULL, 是非常重要的习惯。

FILE *fp = fopen(filename,mode)

if (fp == NULL)

{

  printf("Failed to open file!\n");

  return 0;

}

2、用fclose关闭文件

打开文件后,一定要用fclose函数关闭文件。

3、用fgetc读文件,用fputc写文件

fgetc的函数原型如下:

int fgetc(FILE *stream)

它用于从文件中读取一个字节,返回值即是所读取的字节数。每个字节都被当作一个无
符号的8位(二进制位)数,因此每个被读取字节的取值范围都是0-255。反复调用fgetc函
数可以读取整个文件。如果已经读到文件末尾,无法再读,那么fgetc函数返回EOF(实际上
就是-1)。

fputc函数原形如下:

int fputc(int c, FILE *stream)

它将一个字节写入文件。参数c即是要被写入的字节。虽然c是int类型的,但实际上只
有其低8位才被写入文件。如果写入失败,该函数返回EOF。

 1 #include <stdio.h>
int main(int argc,char * argv[])
{
FILE *fpSrc,*fpDest;
fpSrc = fopen(argv[],"rb");
if (fpSrc == NULL)
{
printf("Failed to open the file\n");
return ;
}
fpDest = fopen(argv[],"wb");
if (fpDest == NULL)
{
fclose(fpSrc);
printf("Failed to open the file\n");
return ;
}
int c;
while((c = fgetc(fpSrc)) != EOF)
{
fputc(c,fpDest);
}
fclose(fpSrc);
fclose(fpDest);
return ;
}

4. 用fgets读文件,用fputs写文件

fgets函数原型如下:

char *fgets(char *s, int n, FILE *stream);

fgets一次从文件中读取一行,包括换行符,放入字符串s中,并且自动加上字符串结尾标志。

参数n代表缓冲区s中最多能容纳多少个字符。

fputs函数原型如下:

int fputs(const char *s, FILE *stream)

它往文件中写入字符串s。

3中的程序可以重写为如下形式:

 #include <stdio.h>
int main(int argc,char * argv[])
{
FILE *fpSrc,*fpDest;
fpSrc = fopen(argv[],"r");
if (fpSrc == NULL)
{
printf("Failed to open the file\n");
return ;
}
fpDest = fopen(argv[],"w");
if (fpDest == NULL)
{
fclose(fpSrc);
printf("Failed to open the file\n");
return ;
}
char szLine[];
while(fgets(szLine,,fpSrc))
{
fputs(szLine,fpDest);
}
fclose(fpSrc);
fclose(fpDest);
return ;
}

C语言文件读写的更多相关文章

  1. c语言文件读写操作总结

    C语言文件读写操作总结 C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程 ...

  2. 3,C语言文件读写

    这两天看到一个关于文件读写的题目,索性就把相关内容总结下. C语言文件读写,无非是几个读写函数的应用,fopen(),fread(),fwrite()等,下面简单介绍下. 一.fopen() 函数原型 ...

  3. C语言文件读写命令fprintf和fscanf

    以向文件中读取和写入二维数组为例. 以下是fprintf的使用:向文件中写入10*10的二维数组,数组元素为1~100之间的随机数. #include <stdlib.h> #includ ...

  4. C语言文件读写操作

    C语言实现文件读写,注意区分几个方法: 写入: fwrite() //个人认为这个最好,可是实现写入任何数据类型,任何长度 fputs() //写入一个字符串,字符串长度不能太长,具体的长度未知,但估 ...

  5. C++常用工具库(C语言文件读写,日志库,格式化字符串, 获取可执行文件所在绝对路径等)

    前言 自己常用的工具库, C++ 和C语言实现 使用cmake维护的项目 持续更新..... 提供使用范例, 详见example文件夹 windows使用的VS通过了的编译. Linux(Ubuntu ...

  6. C语言文件读写(结构体文件)

    有时候,我们需要将输入的数据存储起来,这时候就需要用到文件,对于C语言而言,文件的读写有多种方式,下面主要是结构体文件的读写,例如student.dat(第一列是学号,第二列是姓名) xiaoming ...

  7. [知识复习] C语言文件读写

    文件打开 fopen() 返回FILE* 对象,如果打开失败返回NULL,错误代码存入errno中 FILE *fopen( const char * filename, const char * m ...

  8. C 语言 文件读写

    在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之.一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:type ...

  9. C语言文件读写Demo

    CIODemo.c #include <stdio.h> #include <time.h> #define INPUT_BUFFER_SIZE 100 * 1024 int ...

随机推荐

  1. web开发工具类

    1.日期工具类 import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { public sta ...

  2. Git客户单for Windows

    1.GItHub for Windows  可参考:http://www.ihref.com/read-16514.html

  3. js避免全局污染

    避免声明全局变量,以免发生冲突

  4. C++学习笔记(十四):模板

    模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性.模版可以分为两类,一个是函数模版,另外一个是类模版.Java中对应的技术称为泛型. 函数模板 ...

  5. iOS 9 学习系列:UIStack View (转载)

    作者:Nathan_Bao 地址:http://www.jianshu.com/p/1991e6c2881a 在 iOS9 中,Apple 引入了 UIStackView,他让你的应用可以通过简单的方 ...

  6. Spring ProxyFactory

    ProxyFactory 是 Spring AOP的实现方式之一.下面介绍下ProxyFactory的用法. 1.接口定义 public interface UserReadService { pub ...

  7. 从PHPCMS、帝国CMS谈站长如何选择适合自己的CMS

    经常见站长论坛有人提到选哪个CMS好,最近也又有朋友在51LA站长群里问到PHPCMS和帝国CMS比较选哪个好的问题,所以落叶今天从PHPCMS及帝国CMS对比的角度来谈谈站长应该如何选择适合自己的C ...

  8. css固定表格表头(各浏览器通用)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. [JavaScript]JS对select动态options操作[IE&FireFox兼容]

    <select id="ddlResourceType" onchange="getvalue(this)"></select>     ...

  10. extremeComponents(ec)源码分析

    eXtremeComponents(简称ec)是一系列提供高级显示的开源JSP定制标签,当前的包含的组件为eXtremeTable,用于以表形式显示数据. 其本质是jsp的自定义标签,抓住这一点就抓住 ...