【C】文件读写操作
来源:互联网 发布:卡洛斯实况巅峰数据 编辑:程序博客网 时间:2024/04/30 15:31
第一个例子:将多个文件的内容读出,显示到标准输出上。
#include<stdio.h>void copy(FILE *to,FILE *from);int main(int argc,char *argv[]){ FILE *fp; if(argc == 1) { printf("No input file!\n"); return 1; } else { while(--argc>0) { //以只读方式打开文件 if((fp=fopen(*++argv,"r"))==NULL) { printf("ERROR: can't open %s\n",*argv); } else { copy(stdout,fp); fclose(fp); } } }return 0;}void copy(FILE *to,FILE *from){ int c; while((c=getc(from))!=EOF) putc(c,to);}
FILE *fp 定义一个文件指针
FILE *fopen(char *name,char *mode);
fopen函数以mode定义的方式打开名为name的文件,返回一个文件指针。int getc(FILE *fp)
getc函数从fp指向的文件中读入下一个字符。- int putc(int c,FILE *fp)
putc函数将字符c(int型)写入fp指向的文件当中。
其实,getchar()函数和putchar(c)函数可以由上面两个函数得到(宏定义)
#define getchar() getc(stdin) #define putchar(c) putc((c),stdout)
我们输入./a.out main.c a.txt 把程序源文件和a.txt这个测试文件打印在屏幕上。这个程序的执行效果如下:
第二个例子:由标准输入写入某一个文件。
#include<stdio.h>void copy(FILE *to,FILE *from);int main(int argc,char *argv[]){ FILE *fp; char *p; if(argc == 1) copy(stdout,stdin); else { while(--argc>0) if((fp=fopen(*++argv,"w"))==NULL) printf("error:can't open file %s\n",*argv); else { copy(fp,stdin); fclose(fp); } } return 0;}void copy(FILE *to,FILE *from){ int c; while((c=getc(from))!=EOF) putc(c,to);}
上面这个例子,实现了由标准输入向文件写入内容。如果执行的时候main函数不带参数,则将标准输入复制到标准输出,如果main函数后面跟文件名,则以“写”方式打开文件,将标准输入写入到文件中,如果打开文件失败,则报错。
执行效果如下:
0 0
- [C++]文件读写操作
- C文件读写操作
- C文件读写操作
- C文件读写操作
- C文件读写操作
- C 文件读写操作
- 【C】文件读写操作
- C文件操作、读写文件 C++文件读写、文件操作
- C语言文件读写操作
- C语言文件读写操作
- c语言读写文件操作
- C\C++文件读写操作
- c语言文件读写操作
- C#XML文件读写操作
- C#XML文件读写操作
- c语言文件读写操作
- C语言文件读写操作
- C语言文件读写操作
- 每天一道ACM(四)
- python 查询 MongoDB 数据库pymongo.errors.OperationFailure: cursor id '26777532088498352' not valid at se
- 【一天一道LeetCode】#94. Binary Tree Inorder Traversal
- linux下乱码问题
- Educational Codeforces Round 13
- 【C】文件读写操作
- 数组去重
- 【bzoj4568】【SCOI2016】【幸运数字】【树上倍增+线性基】
- 豆瓣最受欢迎的影评爬虫(第一个爬虫撒花!)
- 168. Excel Sheet Column Title
- Unity3D:Compate Shader
- bootstrap的日期选择器插件
- mycat是什么鬼?垂直切分?水平切分?
- centos安装Samba服务器