2013-08-25 208 views
-1

我在matlab中有一個非常有用的代碼位。
我使用此代碼位來保存我的代碼的不同部分中的文件,而不覆蓋現有的代碼。
有人可以請指導我如何將此代碼轉換爲C/C++?在Windows代碼轉換: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',如果'stat'返回一個成功的代碼則返回true,否則返回false。 –

+0

噢,這是代碼來檢測文件夾中使用的下一個文件名?下一個問題:你想要什麼操作系統的代碼工作? –

回答

1

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

謝謝你的幫助 –

+0

@AS很高興幫助:D – P0W