我有一個問題。我有很多的代碼,使用ifstreams以這種方式:PhysFS可以使用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應用於ifstream,以便我不需要修改所有這些類?
兩個建議,與問題無關:1)'fstream'具有'std :: string'的構造函數 - 爲什麼要傳遞'.c_str()'? 2)'fstream'具有'operator bool()'定義;而不是'if(!ifs.is_open())',只用'if(ifs)'。 – Griwes
@Griwes:採用'std :: string'的構造函數僅在C++ 11中。 –
@JesseGood,恩,忘了提到這一點。無論如何,有沒有什麼理由現在不用'-std = C++ 11' /'0x'編譯? – Griwes