2013-08-25 7 views
-1

У меня очень полезный бит кода в matlab.
Я использую этот бит кода для сохранения файлов в разных частях моего кода, не перезаписывая существующие.
Может кто-нибудь, пожалуйста, назовите меня, как перевести этот код на C/C++?Преобразование кода: Matlab в C++

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

что делает 'в то время как существует (имя)' сделать в Matlab? Похоже, что это условие никогда не терпит неудачу и таким образом петли навсегда? –

+1

@PP. 'exist' предположительно выполняет' stat' и возвращает true, если 'stat' возвращает успешный код, а false - в противном случае. –

+0

О, так это код для обнаружения следующего имени файла для использования в папке? Следующий вопрос: в какой операционной системе вы хотите, чтобы код работал? –

ответ

1

В C++ на Windows я бы использовать что-то вроде:

#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); 
} 
+0

СПАСИБО ЗА ВАШУ ПОМОЩЬ –

+0

@AS рад, что помог: D – P0W

Смежные вопросы