📜  C中的文件处理(1)

📅  最后修改于: 2023-12-03 15:00:11.918000             🧑  作者: Mango

C中的文件处理

在C语言中,文件处理非常重要,可以让程序读入数据、处理数据、输出数据等。本文将对C语言中的文件处理进行介绍。

文件指针

在C语言中,文件被看作是一个包含有一堆数据的序列。文件指针是一个变量,它指向了当前正在处理的文件的位置,通常表示为 FILE*。在打开文件之前,需要先声明文件指针:

#include <stdio.h>

int main() {

    // 声明文件指针 fp
    FILE *fp;

    return 0;
}
打开文件

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

FILE *fopen(const char *filename, const char *mode);
  • filename: 要打开的文件名。
  • mode: 打开文件的模式。

fopen() 函数返回的是一个指向文件的指针。如果文件不能打开,则返回 NULL

打开文件有以下模式:

  • r: 以只读方式打开文件。
  • w: 以只写方式打开文件。如果文件不存在,则创建新文件。如果文件已存在,则覆盖文件。
  • a: 以追加方式打开文件。如果文件不存在,则创建新文件。
  • r+: 以读写方式打开文件。
  • w+: 以读写方式打开文件,并覆盖文件。
  • a+: 以读写方式打开文件,并在文件最后追加内容。

例如:

#include <stdio.h>

int main() {

    FILE *fp;

    // 以只读方式打开文件
    fp = fopen("file.txt", "r");

    // 如果文件不存在,返回 NULL
    if(fp == NULL) {
        printf("Cannot open file.\n");
        return 1;
    }

    // 函数 fopen() 成功打开文件后程序会继续执行,如果文件无法打开则退出程序。
    // ...

    return 0;
}
读取文件

可以使用 fgetc() 函数读取文件中的字符,方法如下:

int fgetc(FILE *fp);

例如:

#include <stdio.h>

int main() {

    FILE *fp;
    int c;

    fp = fopen("file.txt", "r");

    // 读取并输出文件中的内容
    while((c = fgetc(fp)) != EOF) {
        putchar(c);
    }

    // 关闭文件
    fclose(fp);

    return 0;
}
写入文件

使用 fprintf() 函数向文件中写入内容,方法如下:

int fprintf(FILE *stream, const char *format, ...);

例如:

#include <stdio.h>

int main() {

    FILE *fp;
    int i = 1234;

    fp = fopen("file.txt", "w");

    // 向文件中写入一个整数
    fprintf(fp, "%d", i);

    // 关闭文件
    fclose(fp);

    return 0;
}
关闭文件

使用 fclose() 函数关闭文件,方法如下:

int fclose(FILE *fp);

例如:

#include <stdio.h>

int main() {

    FILE *fp;

    fp = fopen("file.txt", "r");

    // 关闭文件
    fclose(fp);

    return 0;
}
总结

本文介绍了C语言中文件处理的基本操作,包括文件指针、打开文件、读取文件、写入文件和关闭文件等。文件处理在C语言中是非常重要的,可以帮助实现复杂的程序逻辑,读取和写入数据,以及调试程序。