文件
一:文件的打开
FILL *fp;
fp=fopen("文件地址","打开方式“)
打开方式:文件地址的方式有相对路径和绝对路径,具体不多说
二:文件的关闭
fclose(fp)
三:文件读写函数
1读写字符函数fgetc和fputc:
fgetc("fp"),fputc("character","fp")
fgetc就是从文件中读入一个字符,fputc是将一个字符写入文件中
调用成功时两函数都返回此字符,失败则返回EOF
2按照行读写文件:
fgets ( ch字符,size大小,fp )从fp中读入size-1个大小写入ch字符中,遇到换行符或文件结束会停止,返回字符首地址,无字符返回NULL;
fputs(字符串,fp)将字符串写入fp所指向的文件中。成功返回0,失败返回EOF;
3格式化读写:
都是按照一定的格式去读写;
fcanf(fp,format...)
#include <stdio.h>
int main() {
FILE *file;
char name[100];
int age;
float salary;
// 打开文件
file = fopen("data.txt", "r");
if (file == NULL) {
perror("Error opening file");
return 1;
}
// 读取数据
if (fscanf(file, "%s %d %f", name, &age, &salary) == 3) {
printf("Name: %s\n", name);
printf("Age: %d\n", age);
printf("Salary: %.2f\n", salary);
} else {
printf("Error reading data from file\n");
}
// 关闭文件
fclose(file);
return 0;
}
fprintf(fp,format...)
#include <stdio.h>
int main() {
FILE *file;
char name[100] = "John Doe";
int age = 30;
float salary = 50000.0;
// 打开文件
file = fopen("output.txt", "w");
if (file == NULL) {
perror("Error opening file");
return 1;
}
// 写入数据
if (fprintf(file, "Name: %s\nAge: %d\nSalary: %.2f\n", name, age, salary) < 0) {
printf("Error writing data to file\n");
}
// 关闭文件
fclose(file);
return 0;
}
4数据块读写函数
四:文件的随机读写
1 . rewind 函数,将文件内部的位置指针移动到文件首。
2.fseek 函数,移动文件内部位置指针。
3.ftell
ftell 函数用于获取文件流中的当前位置,以字节为单位,从文件的开头算起。
long ftell(FILE *stream);
stream:指向 FILE 结构的指针,表示要查询的文件流。
返回值
成功时,返回文件指针当前的位置(以字节为单位)。
如果发生错误,返回 -1L,并设置 errno。
五:文件检测函数
1 . 文件结束检测函数(feof 函数),功能为判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。
格式为:feof(文件指针);
2 . 读写文件出错检测函数(ferror 函数),功能为检查文件在用各种输入输出函数进行读写时是否出错。如 ferror 返回值为 0 表示未出错,否则表示有错。
格式为:ferror(文件指针);
3 . 文件出错标志和文件结束标志置 0 函数(clearerr 函数),用于清除出错标志和文件结束标志,使它们为 0 值。
注:内容部分来自网上。