2012-03-26 2 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을 만들 캔트 내가 표준을 사용하지 않으면 : 'ofstream'이라고 불리는 또 다른 오류가 발생합니다. 적어도 내 코드를 읽는 방법은 두 가지가 있습니다. 어떤 sugestions는 환영받을

+1

StackOverflow에있는 사람이 거의 없기 때문에'cargar' 또는'guardarFcs'가 무엇을 의미할까요? 나는'archivoIn'이 아마도'archivoOut'라고해야한다고 생각하니? 다른 말로하면, 문제의 이름을 짓고, 영어 코드를 게시 해주세요. – sehe

+0

나는 당신의 질문을 정말로 이해하지 못합니다. 문자열이나 ostream을 사용하지 않고 int를 char *로 변환하는 함수가 필요합니까? 아니면 제가 놓친 다른 것이 있습니까? 왜 각 방법에 대한 새로운 변수? 이것은 제 의견으로 이해가되지 않는 부분입니다. 또한'escribir'는 단지 ostream에 불과하지만 메서드처럼 사용하고 있으므로 그렇게 할 수 없습니다. 더 명확하게 대답을 편집하십시오. 어쩌면 제가 도울 수 있습니다. – LiKao

+0

귀하의 질문은 혼란 스럽습니다. 나는 실제 문제가 무엇인지 알지 못합니다. ** 수정 **을하면 분명히 알 수 있습니다. 스페인어 이외의 언어 사용자가 코드를 더 쉽게 이해할 수 있으므로 코드의 스페인어 이름을 영어로 변경하는 것이 좋습니다. –

답변

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

'archivoIn << i'는'archiveIn'이'ofstream'이라면 잘 작동합니다. – jfs

+0

@ J.F.Sebastian : 전환이 숙제라고 생각했습니다. 나는 그것이 명확하지 않다는 데 동의한다. 어쨌든 ... – sehe

관련 문제