学了一年的C语言了,现在回过头来做一下总结。并且博客开了挺长一段时间却没有谢什么实际的东西。现在做下总结,对之后的学习帮助应该挺大的。与大家共勉!
现在,我先来介绍一下C语言的文件读取与写入的原理和具体操作方法。
C语言文件读取与写入是通过将文件看成一个字符序列进行读入和写出的。所以读取与写入文件就用到了指针,而这个指针是一个特殊的指针,我们称为文件指针。
指针名称是:FILE
对指针进行的文件打开操作是fopen。
引用百度百科对fopen这个函数进行介绍
函数简介
接下来我就通过实例来给大家一个直观的了解
#include<stdio.h>
int main()
{
FILE *fp=NULL;
char ch;
//打开文件
fp = fopen("C:\\Users\\Administrator\\Desktop","r");
//第一个双引号里面放的是文件具体路径,第二个是对文件进行的操作
//判断文件是否成功打开
if(fp==NULL)
{
printf("文件打开失败");
return 0;
} //如果文件能成功打开,函数返回值不为NULL
ch=getc(fp);
//对文件内容进行字符读取
while(ch!=EOF) //EOF可以看做是文件结尾,值可以看做-1
//换种方式可以用
//while(!feof(fp))
{
ch = getc(fp)
putchar(ch);
}
//关闭文件
fclose(fp);
return 0;
}
//模拟文件读写操作
#include<stdio.h>
char mygetc(char *);
int i=0;
int main()
{
char *fp="ilovec";
char ch=0;
ch=mygetc(fp);
while(ch!='\0')
{
putchar(ch);
ch=mygetc(fp);
// putchar(mygetc(fp));
}
return 0;
}
char mygetc(char *c)
{
return *(c+i++);
}
//用fgets读出文件
#include<stdio.h>
int main()
{
FILE *fp=NULL;
char str[100]={0};
//打开文件
fp = fopen("C:\\Users\\Administrator\\Desktop","r");
//第一个双引号里面放的是文件具体路径,第二个是对文件进行的操作
//判断文件是否成功打开
if(fp==NULL)
{
printf("文件打开失败");
return 0;
} //如果文件能成功打开,函数返回值不为NULL
fgets(str,100,fp);
printf("%s",str);
//关闭文件
fclose(fp);
return 0;
}
#include<stdio.h>
int main()
{
FILE *fp=NULL;
char str[100]={0};
//打开文件
fp = fopen("C:\\Users\\Administrator\\Desktop","r");
//第一个双引号里面放的是文件具体路径,第二个是对文件进行的操作
//判断文件是否成功打开
if(fp==NULL)
{
printf("文件打开失败");
return 0;
} //如果文件能成功打开,函数返回值不为NULL
while(!feof)
{
strnset(str,'\0',100);
//可以不用
printf("%s",fgets(str,100,fp));
}
//关闭文件
fclose(fp);
return 0;
}
//文件写入
#include<stdio.h>
int main()
{
FILE *fp=NULL;
char ch;
//打开文件
fp = fopen("C:\\Users\\Administrator\\Desktop","w");
//w是对文件进行写操作
//第一个双引号里面放的是文件具体路径,第二个是对文件进行的操作
//判断文件是否成功打开
if(fp==NULL)
{
printf("文件打开失败");
return 0;
} //如果文件能成功打开,函数返回值不为NULL
fputs("字符串内容",fp);
//关闭文件
fclose(fp);
return 0;
}
补充内容:
用stdin和stdout重定向输入输出流
具体用法比较简单
fopen("文件路径","r",stdin);
fopen("文件路径","w",stdout);
要放输入输出语句前面
来源:CSDN
作者:wzyxdwll
链接:https://blog.csdn.net/wzyxdwll/article/details/51141056