C语言文件读写
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语言文件读写的更多相关文章
- c语言文件读写操作总结
C语言文件读写操作总结 C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程 ...
- 3,C语言文件读写
这两天看到一个关于文件读写的题目,索性就把相关内容总结下. C语言文件读写,无非是几个读写函数的应用,fopen(),fread(),fwrite()等,下面简单介绍下. 一.fopen() 函数原型 ...
- C语言文件读写命令fprintf和fscanf
以向文件中读取和写入二维数组为例. 以下是fprintf的使用:向文件中写入10*10的二维数组,数组元素为1~100之间的随机数. #include <stdlib.h> #includ ...
- C语言文件读写操作
C语言实现文件读写,注意区分几个方法: 写入: fwrite() //个人认为这个最好,可是实现写入任何数据类型,任何长度 fputs() //写入一个字符串,字符串长度不能太长,具体的长度未知,但估 ...
- C++常用工具库(C语言文件读写,日志库,格式化字符串, 获取可执行文件所在绝对路径等)
前言 自己常用的工具库, C++ 和C语言实现 使用cmake维护的项目 持续更新..... 提供使用范例, 详见example文件夹 windows使用的VS通过了的编译. Linux(Ubuntu ...
- C语言文件读写(结构体文件)
有时候,我们需要将输入的数据存储起来,这时候就需要用到文件,对于C语言而言,文件的读写有多种方式,下面主要是结构体文件的读写,例如student.dat(第一列是学号,第二列是姓名) xiaoming ...
- [知识复习] C语言文件读写
文件打开 fopen() 返回FILE* 对象,如果打开失败返回NULL,错误代码存入errno中 FILE *fopen( const char * filename, const char * m ...
- C 语言 文件读写
在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之.一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:type ...
- C语言文件读写Demo
CIODemo.c #include <stdio.h> #include <time.h> #define INPUT_BUFFER_SIZE 100 * 1024 int ...
随机推荐
- input输入密码变黑点密文
input输入密码加密 html代码 <form id="login-form" method="post" onsubmit="return ...
- SignalTap II逻辑分析仪的使用
一.例子 我们使用如图1所示的verilog代码所实现的开关电路作为例子.这个电路把DE系列开发板上的前8个开关简单的和对应的8个红色LED相连接.它是这样工作的:在时钟(CLOCK_50)的上升沿读 ...
- spring源码解析(一)---占位符解析替换
一.结构类图 ①.PropertyResolver : Environment的顶层接口,主要提供属性检索和解析带占位符的文本.bean.xml配置中的所有占位符例如${}都由它解析 ②.Config ...
- 【转载】如何将Emmet安装到到 Sublime text 3?
http://www.cnblogs.com/tinyphp/p/3217457.html 看清楚哦~~这是Sublime text 3不是2的版本,两者的安装还是有区别的,下面的方法是我感觉比较简单 ...
- JAVA线程全局异常处理
大家平时写线程很多,但可能很少关注如何捕获线程的全局异常.其实jdk提供了两种捕获全局异常的方法,一种是基于整个线程类(staticsetDefaultUnaughtExceptionHandler( ...
- 【ALearning】第三章 Android基本常见控件
本章主要介绍主要的寻常较多使用的控件,包含TextView.EditView.ImageView.Button等.本章将介绍相关控件基本属性的使用,为以后章节的进阶学习提供基础.案例中引用的Linea ...
- 怎样加入� android private libraries 中的包的源码
先上图: 这里以加入� afinal_0.5.1_bin.jar 为例. 第一步:加入�jar包到libs里面,系统自己主动把jar载入到android private libraries中: 第二步 ...
- 《Linux内核修炼之道》 之 高效学习Linux内核
http://blog.csdn.net/fudan_abc/article/details/5738436
- 文件I/O(不带缓冲)之lseek函数
每个打开的文件都有一个与其相关联的“当前文件偏移量”(current file offset).它通常是一个非负整数,用以度量从文件开始处计算的字节数.通常,读.写操作都从当前文件偏移量处开始,并使偏 ...
- 五、Socket之UDP异步传输文件-实现传输中取消传送
上一篇文章四.Socket之UDP异步传输文件中,只实现了传输开始前拒绝接收文件,没有实现文件传输进行的时候取消传送,这篇文章中我们就来介绍怎样实现这个功能. 在传输过程中取消文件的传送,有很多地方要 ...