C-文件处理
在本教程中,我们将学习使用C编程语言创建文件。
到目前为止,我们一直在使用printf()
和scanf()
函数在控制台中打印数据并分别从控制台获取用户输入。
而我们正在使用的数据都是临时的,一直持续到程序执行为止。
现在,我们将学习使用C编程语言中的I/O(输入/输出)库函数来处理文件。
FILE数据类型
要使用C编程语言处理文件,我们必须将它们声明为FILE类型,该类型在I/O函数的标准库中定义。
语法:
FILE *fptr;
fopen功能
我们使用fopen()
函数来创建一个新文件并使用一个现有文件。
语法:
FILE *fptr; fptr = fopen("filename", "mode");
其中fptr
是文件指针。
" filename"是我们要创建或者使用的文件的名称。
"文件名"可以类似于"示例",或者具有扩展名,例如" sample.txt"或者完整路径" /path/to/file.ext"。
" mode"是我们打算使用该文件的方式。
并且它采用以下值。
r
仅在存在文件的情况下打开文件以供读取。w打开文件仅用于写入。
a
打开文件以添加数据。
我们还可以在新的编译器中使用以下代码。
如果文件存在,
r +
打开文件进行读写。w +打开/创建用于读取和写入的文件。
a +
打开文件以读取和附加数据。
请注意!
以" r"读取模式打开文件:如果该文件存在,则将其打开以进行读取,否则会出现错误。
以" w"写入模式打开文件:如果文件已经存在,则其内容将被覆盖。
否则,将创建一个新文件。以" a"附加模式打开文件:如果文件存在,则将其打开以进行附加。
否则,将创建一个新文件。
如果成功,fopen()
函数将返回一个FILE指针。
否则,返回NULL。
fclose功能
使用后关闭文件连接很重要,为此,我们使用fclose()
函数。
语法。
fclose(file_pointer);
其中," file_pointer"是为文件创建的文件指针。
用C编写一个程序,以用户输入的名称创建一个新文件
为此,我们将首先创建一个变量来保存文件的路径。
然后使用fopen()
函数创建文件。
然后,我们将使用fclose()函数关闭连接。
#include <stdio.h> int main(void) { //creating a FILE variable FILE *fptr; //creating a variable to store filename char filename[255]; //get file path from the user printf("Enter the filename: "); scanf("%s", filename); //open the file in write mode fptr = fopen(filename, "w"); if (fptr != NULL) { printf("File created successfully!\n"); //close the file fclose(fptr); } else { printf("Failed to create the file.\n"); } return 0; }
Enter the filename: /Users//Desktop/sample/helloworld.txt File created successfully!
对于此示例,我要输入文件的完整路径。
我们也可以只输入文件名,例如" helloworld.txt",它将在可执行C程序文件所在的目录中创建文件。
之前的文件夹内容:
-MBP:sample $pwd /Users//Desktop/sample -MBP:sample $ls -la total 0 drwxr-xr-x 2 staff 64 Jan 01 16:34 . drwx------+ 10 staff 320 Jan 01 16:34 ..
之后的文件夹内容:
-MBP:sample $ls -la total 0 drwxr-xr-x 3 staff 96 Jan 01 16:37 . drwx------+ 10 staff 320 Jan 01 16:34 .. -rw-r--r-- 1 staff 0 Jan 01 16:37 helloworld.txt