目录
fopen函数和fclose函数
fputc函数
fgetc函数
fgets函数
fputs函数
fprintf函数
fscanf函数
sscanf函数与sfrintf函数
fseek函数
ftll函数与rewind函数
feof函数与ferror函数
fopen函数和fclose函数
ANSIC规定使用fopen函数来打开文件,fclose来关闭文件。
如何用看这张图:
要注意的是指定写入文件名有两种写法,一个是相对路径,一个是绝对路径。
绝对路径:一定是从硬盘的名字开始写的,比如fopen("C:2023_wpk\\test._1_2\\test.txt","r");
相对路径: 两个点开始..表示上一级路径,比如fopen("../../test.txt","r");
一个点开始.表示当前路经,比如fopen("test.txt","r");
写入方式一共有十种,这里介绍的是“r”(只读),有兴趣了解其他的可以看我的另一篇文章,链接:http://t.csdn.cn/nZY2t
现在开始以“r”为例,用代码示范:
#define _CRT_SECURE_NO_WARNINGS 1
#include<errno.h>
#include<string.h>
#include<stdio.h>
int main()
{
//读文件
FILE* q = fopen("teat.txt", "r");
char arr[1024] = { 0 };
if (q == NULL)
{
//文件不存在报错
printf("%s\n", strerror(errno));
}
//关闭文件
fclose(q);
q = NULL;//文件置空
return 0;
}
fputc函数
fputc是进行写文件
//写入
fputc('b', q);
向p中写入一个字符b,这里的q是文件指针,写入的字符要用' '括起来。
fgetc函数
printf("%c",fgetc(p));
解释:fgetc(p)从p这个流里读一个字符,用printf打印。
int arr = fgetc(stdin);
fputc(arr,stdout);
从stdin里读,输出到stdout屏幕上去。
fgets函数
fgets(arr, 1024, q);
arr是数组,q是一个流,从q流里读最大1024个字符到arr数组中。
fputs函数
fputs("hello",p);
fputs("hello\n",p);
写一个字符串hello到p流中。后面加\n就是换行写入。
fprintf函数
比较说明:
fprintf与printf不同的是它可以指定除了标准流输出以外,也可以指定不同流输出。也就是可以输出到其他地方,指定输出。
fscanf函数
fscanf与scanf同的是它可以指定除了标准流写入以外,也可以指定不同流写入,也就是可以写入到其他地方,指定写入。
sscanf函数与sfrintf函数
sprintf(q,"%d %f %s",a.a,a.d,a.s);//输出在变量数组中
sprintf(输出地,% 输出方式,获取地);//输出在变量数组中sscanf(q,"%d %f %s",&(z.a), &(z.d), &(z.s));//写入在变量数组中(字符串)
sscanf(写入地,% 写入方式,获取地);//写入在变量数组中
fseek函数
fseek定位文件指针读写:
//fseek(地址,偏移量,文件指针的位置)
fseek(p, 2, SEEK_CUR);//负数向前偏移
值得注意的是:
//SEEK_CUR文件指针的当前位置
//SEEK_END文件的末尾位置
//SEEK_SETA文件起始位置
ftll函数与rewind函数
//ftell返回文件指针相对起始指针的偏移量
int ch =ftell(p);
//rewind让文件指针回恢复到起始位置
rewind(p);
feof函数与ferror函数
//feof找文件结束的原因
//ferror测试流上的错误
如何使用:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
FILE* p = fopen("teat.txt", "r");
if (p == NULL)
{
perror("open file teat.txt");
return 0;
}
int ch = 0;
//fgetc 当读取失败的时候或者遇到文件结束的时候,都会返回EOF
while (ch = fgetc(p) != EOF)
{
putchar(ch);
}
//判断读取结束的原因
if (ferror(p)) {
printf("error");
}
else if (feof(p)) {
printf("end of file");
}
}