2013-10-20 24 views
-1

它不工作, 我需要保持許多文件,但有不同的名稱, 例如: FILE1.TXT FILE2.TXT file3.txt 其中數字計數器,它計數器 是X.INT燒焦C++幫我

謝謝。

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


using namespace std; 
using std::string; 


string ItoStr (int x); 

int main(){ 

    string cadena; 
    int x = 1; 
    ofstream fs("nombre" + ItoStr(x) + ".txt"); //Fail line 
    fs << cadena; 
    fs << cadena; 
    fs.close(); 


    }; 


string ItoStr (int x){ 

    string str2; 
    stringstream ss; 
    ss << x; 
    str2 = ss.str(); 
    return str2; 

    }; 
+4

歡迎來到SO。如果您希望有人花時間幫助您,請花一點時間製作一個可用的問題。請參閱這些鏈接 - http://stackoverflow.com/questions/how-to-ask和http://sscce.org/「不工作」是什麼意思?我們不介意讀者。如果您沒有提供所有相關詳情,我們無法幫助您。 – OldProgrammer

+1

我建議'std :: to_string'。然而,這不會工作之前的C++ 11,我認爲你使用,因爲一個'std :: string'不會爲構造函數工作。在這種情況下,'boost :: lexical_cast'。 – chris

回答

0

你只需要打破它,並改變:

ofstream fs("nombre" + ItoStr(x) + ".txt"); 

到:

string fname = "nombre" + ItoStr(x) + ".txt"; 
ofstream fs(fname.c_str()); 

的問題是,ofstream構造函數將(在C++ 98,這您似乎正在使用)const char *,但您正在創建(臨時)std::string

+0

有幾個構造函數,其中['explicit ofstream(const string&filename,ios_base :: openmode mode = ios_base :: out);'](http://www.cplusplus.com/reference/fstream/ofstream/ofstream /) – PeterT

+0

@PeterT:爲清晰起見進行編輯。 –