fopen()使用

fopen()使用

描述

C库函数 FILE* fopen(const char *filename, const char *mode)使用给定的模式mode打开filename所指向的文件。

模式:

模式 描述
"r" 打开一个用于读取的文件。该文件必须存在。
"w" 创建一个用于写入的空文件。如果文件名称与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件。
"a" 追加到一个文件。写操作向文件末尾追加数据。如果文件不存在,则创建文件。
"r+" 打开一个用于更新的文件,可读取也可写入。该文件必须存在。
"w+" 创建一个用于读写的空文件。
"a+" 打开一个用于读取和追加的文件。

返回值

该函数返回一个FILE指针,否则返回NULL,且设置全局变量errno来标识错误。

读写操作示例:

///判断文件是否存在
bool isFileExists_stat(string& name) {
    struct stat buffer;
    return (stat(name.c_str(), &buffer) == 0);
}
///写内容
void Write(const char* content)
{
    char* filename = new char[50];
    strcpy(filename, "D:\w.txt");
    string strFilename(filename);
    bool b = isFileExists_stat(strFilename);
    FILE* f = nullptr;
    if (b)
    {
        f = fopen(filename, "a");
    }
    else
    {
        f = fopen(filename, "w");
    }
    fprintf(f, "%s", content);
    fclose(f);
}
///读内容
void Read()
{
    char* filename = new char[50];
    strcpy(filename, "D:\w.txt");
    string strFilename(filename);
    bool b = isFileExists_stat(strFilename);
    FILE* f = nullptr;
    if (b)
    {
        f = fopen(filename, "r");
        while (1)
        {
            int c = fgetc(f);
            if (feof(f))
            {
                break;
            }
            printf("%c", c);
        }
        fclose(f);
    }
}

最近项目需要用到C++,需要重新捡起,爷青回-

原文地址:https://www.cnblogs.com/zzr-stdio/p/14241777.html