// FILE(文件):记录了一些操作文件的信息
#include <stdio.h> // 标准的输入输出头文件
// 变量名:见名xx
#include <stdlib.h>
int main()
{
FILE* fp;
// Linux
// 文件名 模式
// 文件路径:绝对路径和相对路径
// 相对路径
fp = fopen("hello.txt", "a"); // 写
if (fp == NULL) // 如果打开文件失败(只可读/文件不存在),返回NULL
{
printf("打开文件失败");
exit(1); // 非正常运行导致退出程序 exit(0)退出
}
// fgetc() // 读字符
char a, b, c;
int d;
// fscanf(fp,"%c%c%c%d",&a,&b,&c,&d); // 读字符串
// printf("%c%c%c%d", a, b, c, d);
fprintf(fp, "666"); // 写字符串
fclose(fp); // 回收内存
return 0;
// 1.声明一个文件指针
// 2.打开文件 fopen()
// 3.操作文件(读/写/覆盖写/追加写)
// r:读模式,如果文件不存在,返回NULL指针
// w:写模式,如果文件存在,文件内容被覆盖,如果文件不存在,则会创建文件
// a:写模式,如果文件存在,追加写,如果文件不存在,则创建文件
// r+:读写模式,如果文件存在,指针指向文件开始处,可以在头部添加数据
// 如果文件不存在,返回NULL指针
// w+ 读写模式,如果文件存在,文件内容被覆盖,然后再写入数据。
// 如果文件不存在,则创建该文件。
// 这种模式实际上读不到数据,反而会擦掉数据。
// a+:读写模式。如果文件存在,指针指向文件结尾,可以在现有文件末尾添加内容。
// 如果文件不存在,则创建该文件。
// 4.关闭文件
// 定位到文件开始处, fseek(fp, 0L, SEEK_SET);
// 定位到文件末尾,fseek(fp, 0L, SEEK_END);
// 从当前位置后移2个字节, fseek(fp, 2L, SEEK_CUR);
// 定位到文件第10个字节, fseek(fp, 10L, SEEK_SET);
// 定位到文件倒数第10个字节,fseek(fp, -10L, SEEK_END);
// fseek()的第二个参数为 long 类型,所以移动距离必须加上后缀L,将其转为 long 类型。
// rename()函数用于文件改名,也用于移动文件。
// int rename(const char* old_filename, const char* new_filename);
}