接着昨天的博客,今天来简单说下文本方式的读取。
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也是三个参数:
char s代表读入内容所存放的地方,
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);
}
多多操作其实才是硬道理。