2012-03-26 36 views
0

我需要「作業」方面的幫助。我不能工作這個代碼,因爲我不能從int轉換爲* char。最大的問題是我不能使用字符串。這是代碼:從int到char *沒有字符串,並且與fstream不方便

//This is in a class 

void Interfaz::guardarFCS() { 
    char *nombreArchivo = vent.pedirTxt("por favor inserte un nombre para el archivo"); 
    exportar.setFileName(nombreArchivo,2); 
    int ancho = elMapa.getterAncho(); 
    int alto = elMapa.getterAlto(); 
    int estadoCasilla; 
    int l; 
    int k; 
    for(l = 0; l<ancho; l++) { 
     for(k = 0; k<alto; k++) { 
      estadoCasilla = elMapa.casillaMapaInt(l,k); 
      if(estadoCasilla==1) { 
       exportar.escribir("["); 
       exportar.escribir(l); 
       exportar.escribir("],["); 
       exportar.escribir(k); 
       exportar.escribir("]\n"); 
      } 
     } 
    } 
} 

其中escribir只是與<<whatIsSend使用ofstream。 在這裏我不能創建變量

#ifndef Exportador_H 
#define Exportador_H 

class Exportador { 

    //variables 
    char fileName[255]; 
    std::ofstream archivoIn; 
public: 

    Exportador(); 
    void setFileName(char*,int); 
    void cargar(char*); 
    void crear(); 
    void escribir(char*); 
    void guardarFcs(Mapa); 
    ~Exportador(); 

}; 
#endif 

,使其工作是創建以來的問題,每個方法一個新的變量將使用類聲明在類範圍的非成員的唯一方式ofstream的,如果我不使用std :: another錯誤,那麼名爲'ofstream'的排列不會命名一個類型。 至少讀我的代碼。任何sugestions將受到歡迎

+1

StackOverflow上很少有人現在將具有什麼'cargar'或'guardarFcs'的含義。我_do_認爲'archivoIn'可能應該被命名爲'archivoOut'?換句話說:命名事宜,並請在SO – sehe 2012-03-26 06:31:39

+0

上發佈英文代碼我不太瞭解你的問題。你只需要一個函數來將int轉換爲char *而不使用字符串或ostreams?還是有什麼我失蹤?爲什麼每個方法的新變量?這是我認爲沒有意義的部分。另外你說'escribir'只是一個ostream,但你正在像一種方法使用它,所以它不可能。嘗試編輯您的答案更清晰,也許然後我可以幫助。 – LiKao 2012-03-26 06:31:44

+0

你的問題很混亂,我沒有得到什麼實際問題。如果您**編輯**問題以便清楚說明,可能會有所幫助。將西班牙語名稱更改爲英文代碼將是一個優點,因爲非西班牙語用戶更容易理解您的代碼。 – 2012-03-26 06:34:29

回答

2

我不完全看你的要求,但這應該工作:

void Exportador::escribir(int i) 
{ 
    char convertedToText[10] = {0}; 
    // convert to text, this is the exericse 
    // (use 
    //  - while loop, 
    //  - i=i/10 and 
    //  - i%10) 
    // don't forget to null-terminate 

    archivoIn << convertedToText; 
} 

我不是你展示實際的轉換(提示:itoa可能是你想要什麼如果你被允許使用它),因爲這將從作業中刪除練習

+0

'archivo如果'archiveIn'是'ofstream',那麼<< i'工作得很好。 – jfs 2012-03-26 06:48:28

+0

@ J.F.Sebastian:我認爲轉換是作業。我同意它不明確。無論如何... – sehe 2012-03-26 06:58:19