2016-02-02 86 views
-1

這是我的代碼:如何連接路徑和不同的文件名 - C++

double loglikelihood = 0; 
double loglikelihood1 = 0; 
double THRESHOLD = 5; 
double c = THRESHOLD + 1; 

std::ofstream llh_file; 
std::ofstream myfile; 
const char *path= "path_of_file_to_be_saved"; 
myfile = (string(path) + flags.inference_result_file_.c_str()); 

for (int iter = 0; c > THRESHOLD; ++iter) {  
    std::cout << "Iteration " << iter << " ...\n"; 
    loglikelihood = 0; 

    llh_file.open(myfile.c_str()); 
    loglikelihood += sampler.LogLikelihood(&document); 
    llh_file << "THE LOGLIKELIHOOD FOR ITER " << iter << " " << "IS: " << loglikelihood << "\n";     
    llh_file.close();  

我是一個新手,C++。我有一個包含不同文件名的文件夾。我想在for循環中執行一些過程,並將結果保存在具有精確文件名稱的文件夾中作爲輸入文件。我該怎麼做?請幫忙!

+3

閱讀更多關於[使用C++編程](http://stroustrup.com/programming.html);至少使用C++ 11;學習'std :: string',看[這裏](http://en.cppreference.com/w/cpp) –

+1

一旦你完成了,請看看[Boost.Filesystem](http:// www。 boost.org/doc/libs/1_60_0/libs/filesystem/doc/index.htm)。 – DevSolar

+0

文件夾是操作系統特定的; POSIX和Linux有目錄,而不是文件夾。你可以有一個沒有任何類型的文件夾(甚至沒有目錄)的C++實現。在POSIX上,考慮[readdir(3)](http://man7.org/linux/man-pages/man3/readdir.3.html)等...&[nftw(3)](http:// man7 .org/linux/man-pages/man3/nftw.3.html) –

回答

3

連接字符串。使用std :: string而不是char *。 像:

#include <string> 
#include <iostream> 
#include <fstream> 
int main() { 
    std::string path = "path"; 
    std::string file = "file.txt"; 
    std::string myfile = path + "/" + "file.txt"; 
    std::string fname = "test.txt"; 
    std::ofstream f(fname); 
    f << myfile; 
} 

這將寫文件test.txt中的 「路徑/ file.txt的」。

+1

這正是我想要的。但是,我想將它保存在一個文件中。這是打印輸出。如何將它作爲輸入文件名保存在文件中?輸入文件位於flags.inference_result_file_.c_str()中。我試圖將它保存在一個文件中。編輯 – Sanathana

+1

以在文件中寫入字符串。但是你必須適應你的代碼。我不會做你所有的工作:) –

+0

hehe ..我想通了;)感謝您的幫助:) – Sanathana

相關問題