gpt4 book ai didi

c++ - PhysFS 可以使用 ifstreams 吗?

转载 作者:行者123 更新时间:2023-11-30 04:27:27 25 4
gpt4 key购买 nike

我有一个问题。我有很多代码以这种方式使用 ifstreams:

例如:

bool AudioManager::_loadSounds( const std::string& path, const std::string& appendPath )
{
//open the file
std::ifstream ifs( path.c_str() );

//ensure it is open
if(!ifs.is_open())
{
return false;
}

std::string line;

//read each sound
while( getline( ifs, line ) )
{

...

问题是我需要在整个应用程序范围内进行更改才能使用 PhysFS。除了将被划分为 zip 文件外,所有数据都将保持结构相同的目录。

有没有一种简单的方法可以让 PhysFS 应用于 ifstreams,这样我就不需要修改所有这些类?

最佳答案

没有简单的方法来做到这一点。无论如何,您将不得不不使用 fstreams。但是,您只需编写一个从 PhysFS 提取数据的 std::streambuf 派生类,即可继续使用流。这不是一件微不足道的事情,因为 streambuf 具有各种复杂性。但这当然是可行的。

您可以采用任何 istream 派生类并将不同的 streambuf 插入其中。

关于c++ - PhysFS 可以使用 ifstreams 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10922814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com