-1

我在 matlab 中有一个非常有用的代码位。
我正在使用此代码位将文件保存在代码的不同部分,而不会覆盖现有文件。
有人可以指导我如何将此代码翻译成 C/C++ 吗?

i=0;  
name= ['test_', int2str(i)];  
while exist(name)  
    i=i+1;  
    name= ['test_', int2str(i)];  
end  
save(name)  
4

1 回答 1

1

在 Windows 上的 C++ 中,我会使用类似的东西:

#include <iostream>
#include<fstream>
#include<string>
#include<sstream>

template <typename T>
std::string num2str ( T Number )
{
     std::stringstream ss;
     ss << Number;
     return ss.str();
}

inline bool if_exists (const std::string& name) {
    std::ifstream f(name.c_str());
    if (f.good()) {
        f.close();
        return true;
    } else {
        f.close();
        return false;
    }   
}

std::string get_next_file( void )
{
    int i=1;
    while (if_exists("test_" + num2str(i) ) )
      i++;

    return std::string("test_") + num2str(i);
}
于 2013-08-25T15:14:51.557 回答