您现在的位置是:首页 > Javascript
当前栏目
文件操作:打开、关闭、读取、定位
2023-04-18 14:23:20 时间
文件的分类:文本文件、二进制文件
文本文件中,保存的时候一个字符对应一个字节;
二进制文件,按照二进制编码保存的文件。
- fopen/fclose函数
- 从文件中读出
- fgets 函数
- fread函数
- 写入文件
- fputc函数
- fwrite函数
- rewind函数
- fseek 函数
用 vs 或者 Dev-C++ 使用 fopen等函数时,如果遇到打开不了的情况,例如:
可以在预定义时,在头文件前加上:#define _CRT_SECURE_NO_WARNINGS
fopen/fclose函数
fopen 函数打开文件,执行操作。
文件一旦使用完毕,应该用 fclose 函数把文件关闭,以释放相关资源,避免数据丢失。
不了解函数时,用鼠标点击该函数,按 Fn 键+ F1键。
FILE* fopen (char const* _FileName,char const* _Mode);
语法(filename 文件名、mode 类型)
文件打开:
FILE* fp = fopen("C:\Users\Lenovo\Desktop\list.txt", "r");
验证是否打开:
if (fp == NULL)
printf("打开失败");
如果 filename 或 mode 是 NULL 或空字符串,这些函数则会触发无效的参数处理程序,如 Parameter Validation。 如果允许执行继续,则这些函数将返回 NUll 并将 errno 设置为EINVAL。
二进制读写:rb、wb、ab、rb+、wb+、ab+. 与上文对应(只不过适用于二进制文件)。
从文件中读出
//一个一个输出
char ch=0;
if (fp != 0)
{
ch=fgetc(fp);
printf("%c",ch);
ch=fgetc(fp);
printf("%c",ch);
}
//循环全部输出
while (fp!=0&&EOF!=(ch = fgetc(fp)))
{
printf("%c", ch);
}
fgets 函数
从指定的流中读取数据,每次读取一行。
char *fgets(char *str,int n,FILE *stream);
//输出文件的第一行,接着输出第二行,同理输出第三行
char str[200];
if (fp != 0)
{
fgets(str, 200, fp);
printf("%s
", ch);
fgets(str, 200, fp);
printf("%s
", 200, fp);
}
char str[200];
//循环输出每一行
while (fgets(str, 100, fp))
{
printf("%s", str);
}
fread函数(一般读取二进制文件)
从开头读起,读取结束时,文件指针会自动移动到读取结束的地方。
语法 (buffer 数据的存储位置 / size 项目大小,以字节为单位 / count 要读取的项的最大数量 / stream 指向 FILE
结构的指针)
//返回实际读取的大小
char str[200]={0};
int n = fread(str, 1, 20, fp);
str[n] = '