目录
当我们想要将所写的数据在程序运行结束后继续保存时,这时我们就要将其保存在磁盘文件中。
因此文件的创建与操作在我们后期的学习当中必不可少。
在我们的程序设计中我们一般将文件分为两类:程序文件和数据文件
程序文件:
包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境 后缀为.exe)
数据文件:
文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件, 或者输出内容的文件。例如 .txt文件
注意:这些仅作了解,接下来我们讲述文件的打开与读写。
这里我们需要了解fopen和fclose这两函数以及FILE*这一文件指针类型
我们在对文件进行操作时是依靠文件的指针对其进行定位操作,“FILE*”这一指针类型就是表示指向某一文件路径的指针。每当我们用fopen打开文件时,如果打开成功fopen会将文件的路径以FILE*指针类型返回,这里我们将其理解为一种指针类型即可。
需要打开的文件名,这里需要用“ ”双引号进行标记。
打开文件后将要执行的操作,这里的操作字符已经被规定好了,我们进行选择就可以了
"r" | 读取一个文件,如果文件不存在则打开失败 |
"w" | 写入一个文件,如果文件不存在则创建一个该名称的文件 |
"a" | 在文件末尾进行追加写入,如果文件不存在则创建一个该名称的文件 |
"r+" | 同时用于读取和写入文件,如果文件不存在则打开失败 |
"w+" | 同时用于读取和写入文件,如果文件不存在则创建一个该名称的文件 |
"a+" | 在文件末尾进行追加写入和读取,如果文件不存在则创建一个该名称的文件 |
这里关闭文件只需要将fopen返回的文件指针放入就可以了,记住打开文件之后不要忘了关闭文件!
int main()
{
FILE* p1 = fopen("test.txt", "w");
fclose(p1);
return 0;
}
这里会在该文件目录下创建一个test.txt文件当我们知道如何打开文件后,就需要对文件中的内容进行编译
了解文件打开与关闭后,我们就需要对文件的内容进行编译。
这里我们需要了解新的函数:
该函数读取文件的一个字符,如果读取成功将返回该字符的 int 类型值,并将光标移动一位。
如果读取失败或者到文件末尾将返回EOF。
int character :想要录入文件的字符
FILE*stream:文件地址
注意:该函数一次只能放入一个字符
int main()
{
FILE* p1 = fopen("test.txt", "w+");
fputc('a', p1);
fclose(p1);
FILE* p2 = fopen("test.txt", "r");
int m = fgetc(p2);
printf("m=%d\n", m);
fclose(p2);
return 0;
}