一、使用std::ifstream
判断文件是否存在
在C++中,使用std::ifstream
可以方便地判断文件是否存在。下面是一个示例代码:
#include <iostream>
#include <fstream>
#include <string>
int main()
{
std::string filename = "test.txt";
std::ifstream file(filename);
if (file.good())
{
std::cout << "File exists." << std::endl;
}
else
{
std::cout << "File does not exist." << std::endl;
}
return 0;
}
上述代码首先使用std::ifstream
打开文件,然后使用good()
函数判断文件是否存在。如果文件存在,good()
函数会返回true
,否则返回false
。
二、使用fopen
函数判断文件是否存在
除了使用std::ifstream
,还可以使用C标准库函数fopen
来判断文件是否存在。下面是一个示例代码:
#include <stdio.h>
#include <string.h>
int main()
{
char filename[] = "test.txt";
FILE *file = fopen(filename, "r");
if (file != NULL)
{
fclose(file);
printf("File exists.\n");
}
else
{
printf("File does not exist.\n");
}
return 0;
}
上述代码使用fopen
函数打开文件,模式为"r",如果文件存在,fopen
函数会返回一个非空指针,否则返回NULL
。
三、使用_access
函数判断文件是否存在
Windows系统下,还可以使用_access
函数来判断文件是否存在。下面是一个示例代码:
#include <io.h>
#include <string.h>
int main()
{
char filename[] = "test.txt";
if (_access(filename, 0) == 0)
{
printf("File exists.\n");
}
else
{
printf("File does not exist.\n");
}
return 0;
}
上述代码使用_access
函数来判断文件是否存在,如果文件存在,_access
函数会返回0
,否则返回-1
。
四、使用Boost库判断文件是否存在
使用Boost库也可以方便地判断文件是否存在。下面是一个示例代码:
#include <boost/filesystem.hpp>
int main()
{
boost::filesystem::path filename("test.txt");
if (boost::filesystem::exists(filename))
{
std::cout << "File exists." << std::endl;
}
else
{
std::cout << "File does not exist." << std::endl;
}
return 0;
}
上述代码使用Boost库中的boost::filesystem::exists
函数来判断文件是否存在。