将C文件句柄分配给C 文件流
Assigning a C file handle to C++ file stream
我可以打开一个具有C函数(fopen
)的文件,并将其分配给C 文件流(fstream
...)?
询问的原因:我想在Windows上处理UTF8,但是fstream
类只有const char*
CTOR/OPEN方法。因此,我需要使用C API打开它,然后将流对象使用。
Boost流库甚至可能是可能的,因为它通常允许指定您自己的水槽/来源,但我不知道从哪里开始。
澄清:我想打开带有路径为UTF8字符串的路径的文件。因此,文件打开方法必须支持fstream
不得的UTF8路径。接受const wchar_t*
的MSVC扩展确实有帮助,但是MINGW不能提供这些过载。因此,我需要在Windows上使用wfopen
。
我可以打开具有C函数(
fopen
)的文件,并将其分配给C 文件流(fstream
...)?
不是直接,否。但是,您可以使用FILE*
编写(或查找)自定义std::streambuf
派生类,该类可处理I/O,然后将该类的实例分配给标准std::istream
对象。请参阅std::basic_filebuf
的实现来帮助您,或GNU的stdio_filebuf
类。
我想打开一个以utf8字符串给出的路径的文件。因此,文件打开方法必须支持
fstream
不得的UTF8路径。接受const wchar_t*
的MSVC扩展确实有帮助,但是MINGW不能提供这些过载。因此,我需要在Windows上使用wfopen
。
Windows上的大多数Unicode API不支持UTF-8,仅支持UTF-16。因此,wchar_t
在Visual C 和其他兼容编译器中的过载。mingw根本不支持这些扩展。不过,有第三方解决方案。例如Pathie(请参阅Pathie::ifstream
和Pathie::ofstream
类)。
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 使用 Libssh 将文件从服务器复制到客户端:分配文件复制目标路径时出现问题
- 如何通过一个循环将多个文件的内容分配给不同的类属性?
- 如何从文件中读取单词,将它们分配给数组并分析其内容?
- 如何从文件读取到动态分配的指向结构的指针链表中?
- 如何将 QML 文件分配给主窗口/应用程序
- 在读取大型 txt 文件时动态分配结构内的向量
- 字符串和输入文件,从包含字符串的 txt 文件中分配多个变量值
- 如何将文本文件的部分分配给数组的索引
- 动态分配读取 txt 文件的内存
- C++从 csv 文件中读取,然后将数据分配给类成员
- 我想从文本文件中获取信息并将该信息分配给类对象
- 从文件中分配变量,并使用定界符分配
- 如何将足够的数据从文本文件分配到char*中,然后将其复制到内存C 中
- 如何在 Linux 下为可执行文件分配堆栈
- 如何直接从文本文件分配变量
- 为什么不能将易失性文件*分配给文件*?
- 将数据从文件分配给矩阵C++
- 当提升内存映射文件分配的磁盘空间超过HDD上的可用空间时,如何检测错误
- 用c++在追加模式下打开一个文件进行写入会为整个文件分配内存吗