C语言程序设计——文件操作
发布人:shili8
发布时间:2025-02-24 03:47
阅读次数:0
**C语言程序设计——文件操作**
在计算机编程中,文件操作是非常重要的一部分。它涉及到读取、写入、创建、删除等各种文件的操作。在C语言中,文件操作可以通过标准库中的函数来实现。
###1. 文件描述符在C语言中,每个打开的文件都有一个唯一的整数值,这被称为文件描述符(file descriptor)。文件描述符是用来标识一个打开的文件的,它是一个非负整数。每次打开一个新文件时,系统会自动分配一个新的文件描述符。
###2. fopen()函数`fopen()`函数用于打开一个文件。如果文件不存在,则创建一个新文件。它返回一个指向 `FILE` 结构体的指针,如果无法打开文件则返回 `NULL`。
c#include <stdio.h> int main() { FILE *fp = fopen("example.txt", "w"); if (fp == NULL) { printf("无法打开文件 "); return1; } // ... }
在上面的例子中, `"example.txt"` 是要打开的文件名, `"w"` 表示以写入模式打开文件。
###3. fclose()函数`fclose()`函数用于关闭一个已经打开的文件。它会释放与该文件相关的系统资源。
c#include <stdio.h> int main() { FILE *fp = fopen("example.txt", "w"); if (fp == NULL) { printf("无法打开文件 "); return1; } // ... fclose(fp); }
###4. fread()函数`fread()`函数用于从一个已打开的文件中读取数据。它会将指定数量的字节从文件中读入缓冲区。
c#include <stdio.h> int main() { FILE *fp = fopen("example.txt", "r"); if (fp == NULL) { printf("无法打开文件 "); return1; } char buffer[1024]; size_t bytesRead = fread(buffer, sizeof(char),1024, fp); // ... }
在上面的例子中, `buffer` 是一个缓冲区,用于存放从文件中读取的数据。 `sizeof(char)` 表示每个字节的大小, `1024` 表示要读取的字节数。
###5. fwrite()函数`fwrite()`函数用于向一个已打开的文件中写入数据。它会将指定数量的字节从缓冲区写入文件。
c#include <stdio.h> int main() { FILE *fp = fopen("example.txt", "w"); if (fp == NULL) { printf("无法打开文件 "); return1; } char buffer[] = "Hello, World!"; size_t bytesWritten = fwrite(buffer, sizeof(char), strlen(buffer), fp); // ... }
在上面的例子中, `buffer` 是一个缓冲区,用于存放要写入的数据。 `sizeof(char)` 表示每个字节的大小, `strlen(buffer)` 表示缓冲区中的有效长度。
###6. remove()函数`remove()`函数用于删除一个文件。如果文件不存在,则什么也不做。
c#include <stdio.h> int main() { if (remove("example.txt") !=0) { printf("无法删除文件 "); return1; } }
在上面的例子中, `"example.txt"` 是要删除的文件名。
###7. rename()函数`rename()`函数用于更改一个文件的名称。如果源文件不存在,则什么也不做。目标文件存在时,则会覆盖它。
c#include <stdio.h> int main() { if (rename("old_name.txt", "new_name.txt") !=0) { printf("无法重命名文件 "); return1; } }
在上面的例子中, `"old_name.txt"` 是要更改名称的源文件名, `"new_name.txt"` 是新的目标文件名。
### 总结本文介绍了C语言中的文件操作函数,包括 `fopen()`、`fclose()`、`fread()`、`fwrite()`、`remove()` 和 `rename()`。这些函数可以帮助你在程序中进行各种文件的读取、写入、创建和删除等操作。