接着昨天的博客,今天来简单说下文本方式的读取。
fopen函数其实没有什么区别,但是在Windows系统下有点区别。
首先我们还是先打开一个文件
FILE *fp;fp=0;if((fp=fopen("/home/user/Blog/file2.txt","w"))==0){printf("文件打开失败!\n");return -1;}
接下来就接收下文本方式的两个函数
fgets,fprintf他们都可以以行的方式读写文本文件,但不能读写二进制文件,昨天讲的fread,fwrite文本文件,二进制文件都是可以读写的。我们在linux用man就可以查到fgets与fprintf的参数及其介绍。
fprints有三个参数:
stream 文件流,就是你要写入的文件,第二个就是格式,就如同printf里%s这些,还有第三个参数,就是你要写入文件的内容
fgets也是三个参数:
chars代表读入内容所存放的地方,
int size 每次读取的大小
FILEstream还是文件流,要读的源文件。
接下里具体运用就会比较清楚了。
#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){FILE *fp;fp=0;if((fp=fopen("/home/user/Blog/file2.txt","w"))==0){printf("文件打开失败!\n");return -1;}char *strBuf=(char*)malloc(40);strcpy(strBuf,"武汉加油,中国加油");fprintf(fp,"%s",strBuf);fclose(fp);delete(strBuf);strBuf=0;}~
再目录打开写入的文件你就能看见内容了。
接下来我们就把他们读出来。
#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){FILE *fp;fp=0;//记得这里要换模式,改成只读if((fp=fopen("/home/user/Blog/file2.txt","r"))==0){printf("文件打开失败!\n");return -1;}char strBuf[201];memset(strBuf,0,sizeof(strBuf));while(1){if(fgets(strBuf,sizeof(strBuf),fp)==0)break;printf("%s\n",strBuf);}fclose(fp);}
多多操作其实才是硬道理。