39 C语言初学者学习大纲 - 文件操作章节

39 C语言初学者学习大纲 - 文件操作章节

文件操作

文件操作是 C 语言中的重要部分,它允许程序读取和写入文件中的数据。以下是文件操作的基本概念和常用函数。

1. 文件指针

在 C 语言中,文件通过 FILE 结构来处理。我们需要使用文件指针来操作文件。

1
FILE *fp;

2. 打开文件

使用 fopen() 函数打开文件。该函数的原型如下:

1
FILE *fopen(const char *filename, const char *mode);
  • filename: 要打开的文件名。
  • mode: 文件打开模式,可以是以下之一:
    • "r": 以只读方式打开。
    • "w": 以写入方式打开(如果文件存在则清空文件,如果不存在则创建新文件)。
    • "a": 以追加方式打开(写入时数据将添加到文件末尾)。
    • "rb", "wb", "ab": 二进制模式。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>

int main() {
FILE *fp = fopen("example.txt", "w");
if (fp == NULL) {
printf("文件打开失败!\n");
return 1;
}
fprintf(fp, "Hello, World!\n");
fclose(fp);
return 0;
}

3. 关闭文件

使用 fclose() 函数关闭已打开的文件,以释放系统资源。

1
int fclose(FILE *stream);

示例代码

1
fclose(fp);

4. 读取文件

使用 fgetc()fgets()fread() 函数读取文件中的数据。

  • fgetc(): 读取单个字符。
1
int fgetc(FILE *stream);
  • fgets(): 读取一行数据。
1
char *fgets(char *str, int n, FILE *stream);
  • fread(): 读取块数据。
1
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);

示例代码

1
2
3
4
5
6
7
8
9
10
11
char buffer[100];
FILE *fp = fopen("example.txt", "r");
if (fp == NULL) {
perror("文件打开失败");
}

if (fgets(buffer, 100, fp) != NULL) {
printf("读取的内容: %s\n", buffer);
}

fclose(fp);

5. 写入文件

使用 fputc()fputs()fwrite() 函数向文件写入数据。

  • fputc(): 写入单个字符。
1
int fputc(int char, FILE *stream);
  • fputs(): 写入字符串。
1
int fputs(const char *str, FILE *stream);
  • fwrite(): 写入块数据。
1
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);

示例代码

1
2
3
4
5
6
7
8
9
FILE *fp = fopen("output.txt", "w");
if (fp == NULL) {
perror("文件打开失败");
}

fputs("Hello, World!", fp);
fputc('\n', fp); // 写入换行

fclose(fp);

6. 文件定位

使用 fseek()ftell()rewind() 函数定位文件指针。

  • fseek(): 移动文件指针。
1
int fseek(FILE *stream, long offset, int whence);
  • ftell(): 获取当前位置。
1
long ftell(FILE *stream);
  • rewind(): 返回文件指针到开头。
1
void rewind(FILE *stream);

示例代码

1
2
3
4
5
FILE *fp = fopen("example.txt", "r");
fseek(fp, 0, SEEK_END); // 移动到文件末尾
long size = ftell(fp); // 获取文件大小
rewind(fp); // 返回文件开头
fclose(fp);

7. 错误处理

在文件操作中,随时检查错误是很重要的。你可以使用 perror()fprintf(stderr, ...) 来输出错误信息。

例子

1
2
3
4
FILE *fp = fopen("nonexistent.txt", "r");
if (fp == NULL) {
perror("文件打开错误");
}

8. 文件的其他操作

  • remove(): 删除文件。
1
int remove(const char *filename);
  • rename(): 重命名文件。
1
int rename(const char *oldname, const char *newname);

总结

文件操作在 C 语言中是非常重要的一部分,掌握以上基本函数可以帮助你有效地读写文件。练习使用这些函数,尝试创建、读取和写入不同类型的文件,以加深对文件操作的理解。

39 C语言初学者学习大纲 - 文件操作章节

https://zglg.work/c-language-zero/39/

作者

AI教程网

发布于

2024-08-08

更新于

2024-08-10

许可协议