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 ;
}

最新文章

  1. JS中的动态表格
  2. 查询01_DML锁和DDL锁的处理
  3. 二叉树遍历(Binary Tree Traversal)
  4. Java内存回收机制
  5. 【Composer】实战操作一:使用库
  6. JAVA如何随机生成一个汉字
  7. HDU 5387 Clock
  8. Ehcache(02)——ehcache.xml简介
  9. 转载 SharePoint 2013配置Master Page and Page Layout
  10. Launch a Batch File With Windows Installer
  11. 黑马程序员——vim编辑器的使用
  12. 绘制更Smooth的UI
  13. Hibernate中自带ID的generator的含义
  14. 文件上传组件FileUpload 以及邮箱搭建JavaMail
  15. Android的root学习
  16. 跟面向对象卯上了,看看ES6的“类”
  17. js根据毫米/厘米算像素px
  18. c# 将CSV文件转成list集合
  19. winform里面打开网页(转)
  20. java获取iPhone手机图片旋转角度处理

热门文章

  1. C# 产生随机密码
  2. iOS---RunLoop深度剖析
  3. Java字节码(.class文件)格式详解(一)
  4. Theme使用的几点注意事项
  5. 表单,css
  6. Codeforces 390Div2-754D. Fedor and coupons(贪心+优先队列)
  7. 网页标签图片如何保存&amp;下载?
  8. 清空session的方法
  9. cocos2d_x_08_游戏_FlappyBird
  10. hdu 1712 ACboy needs your help 分组背包