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++,需要重新捡起,爷青回-