【发布时间】:2012-03-26 06:19:03
【问题描述】:
我在“家庭作业”方面需要帮助。我无法使用此代码,因为我无法从 int 转换为 *char。最大的问题是我不能使用字符串。这是代码:
//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。
在这里我无法创建 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
使其工作的唯一方法是为每个方法创建一个新变量,因为如果我不使用 std:: 另一个错误将是在类范围内对非成员使用类声明名为“ofstream”的arraise 没有命名类型。 无论哪种方式至少可以阅读我的代码。欢迎任何建议
【问题讨论】:
-
现在 StackOverflow 上很少有人会理解
cargar或guardarFcs的意思。我确实认为archivoIn可能应该被命名为archivoOut?换句话说:命名很重要,请在SO上发布英文代码 -
我不太明白你的问题。您是否只需要一个函数将 int 转换为 char * 而不使用字符串或 ostreams?或者还有什么我想念的吗?为什么每种方法都有新变量?这是我认为没有意义的部分。您还说
escribir只是一个ostream,但您将它当作一种方法使用,所以它不能。尝试编辑您的答案以获得更清晰的信息,也许我可以提供帮助。 -
您的问题令人困惑,我不明白实际问题是什么。如果您编辑问题以便明确说明,可能会有所帮助。将代码的西班牙语名称更改为英文将是一个加分项,因为非西班牙语使用者会更容易理解您的代码。