C/C++知识点之C语言文件读写
小标 2018-11-01 来源 : 阅读 986 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C语言文件读写,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C语言文件读写,通过具体的内容向大家展示,希望对大家学习C/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>
 2 int main(int argc,char * argv[])
 3 {
 4     FILE *fpSrc,*fpDest;
 5     fpSrc = fopen(argv[1],"rb");
 6     if (fpSrc == NULL)
 7     {
 8          printf("Failed to open the file\n");
 9          return 0;
10     }
11     fpDest = fopen(argv[2],"wb");
12     if (fpDest == NULL)
13     {
14         fclose(fpSrc);
15         printf("Failed to open the file\n");
16         return 0;
17     }
18     int c;
19     while((c = fgetc(fpSrc)) != EOF)
20     {
21         fputc(c,fpDest);
22     }
23     fclose(fpSrc);
24     fclose(fpDest);
25     return 0;
26 }

 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中的程序可以重写为如下形式:

 1 #include <stdio.h>
 2 int main(int argc,char * argv[])
 3 {
 4     FILE *fpSrc,*fpDest;
 5     fpSrc = fopen(argv[1],"r");
 6     if (fpSrc == NULL)
 7     {
 8          printf("Failed to open the file\n");
 9          return 0;
10     }
11     fpDest = fopen(argv[2],"w");
12     if (fpDest == NULL)
13     {
14         fclose(fpSrc);
15         printf("Failed to open the file\n");
16         return 0;
17     }
18     char szLine[100];
19     while(fgets(szLine,99,fpSrc))
20     {
21         fputs(szLine,fpDest);
22     }
23     fclose(fpSrc);
24     fclose(fpDest);
25     return 0;
26 }

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程