在C++中,std::ifstream
和std::ofstream
分别用于读取和写入文件。宽文件(wide-character files)是指使用宽字符(通常是Unicode字符)编码的文件。宽字符类型在C++中通常表示为wchar_t
。
std::ifstream
用于从文件中读取数据。std::ofstream
用于向文件中写入数据。当使用std::ifstream
创建宽文件有效,而使用std::ofstream
在同一文件夹中访问被拒绝时,可能的原因包括:
std::filesystem
库来检查和创建路径。#include <iostream>
#include <fstream>
#include <filesystem>
int main() {
std::wstring filename = L"example.txt";
std::filesystem::path path(filename);
// 检查路径是否存在,如果不存在则创建
if (!std::filesystem::exists(path)) {
std::filesystem::create_directories(path.parent_path());
}
// 尝试写入文件
std::wofstream ofs(filename);
if (!ofs) {
std::cerr << "无法打开文件进行写入: " << std::wstring_convert<std::codecvt_utf8<wchar_t>>().to_bytes(filename) << std::endl;
return 1;
}
ofs << L"Hello, World!" << std::endl;
ofs.close();
return 0;
}
通过上述方法,可以解决std::ofstream
在同一文件夹中访问被拒绝的问题。
领取专属 10元无门槛券
手把手带您无忧上云