Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: JonaLamper en 2 Octubre 2018, 22:38 PM

Título: C++ problemas al escribir en fichero
Publicado por: JonaLamper en 2 Octubre 2018, 22:38 PM
Muy buenas,

Tengo un problema que no sé resolver al concatenar strings y escribir en un fichero. ¿Alguien sabe por qué no me deja?

Adjunto imagen, podéis confiar en el link jajaja:

https://ibb.co/mCiAzK

Muchas gracias  ;D
Título: Re: C++ problemas al escribir en fichero
Publicado por: JonaLamper en 2 Octubre 2018, 23:08 PM
Vale, ya lo he conseguido:

Código (cpp) [Seleccionar]
void createFile(vector<vector<bool>> matriz) {
ofstream fs("prueba.txt");
string texto = "";

// Declaración de constantes
for (int i = 0; i < matriz.size(); i++) {
for (int j = 0; j < matriz.size(); j++)
texto = texto + "(declare-const " + "p_" + (char)i + "_" + (char)j + " Bool) \n";
texto = texto + "\n";
}
fs << texto;
fs.close();
}


Aunque ahora tengo otro problema: ¿Por qué cuando fuerzo que 'i' y 'j' sean de tipo char no me escribe nada en el fichero? Me debería escribir lo que vale 'i' y 'j' (el número en sí), pero no escribe nada. Este es el resultado en el fichero:

Código (bash) [Seleccionar]
(declare-const p__ Bool)
(declare-const p__ Bool)
(declare-const p__ Bool)
(declare-const p__ Bool)
(declare-const p__ Bool)


Y debería ser este el resultado:

Código (bash) [Seleccionar]
(declare-const p_1_1 Bool)
(declare-const p_1_2 Bool)
(declare-const p_1_3 Bool)
(declare-const p_1_4 Bool)
(declare-const p_1_5 Bool)


Es más, no sé por qué este código tan tonto no me muestra el número:

Código (cpp) [Seleccionar]
int a = 32;
char c = (char)a;
cout << "number: " << c << endl;


¿Está mal hecha la conversión?  :-\
Título: Re: C++ problemas al escribir en fichero
Publicado por: JonaLamper en 3 Octubre 2018, 00:12 AM
Perfecto, ya lo he conseguido. Me he declarado una función para convertir int a string:

Código (cpp) [Seleccionar]
string toString(int x){
stringstream str;
str << x;
return str.str();
}


De tal forma que simplemente llamo a la función cuando quiero añadir algo al texto que ya tengo:

Código (cpp) [Seleccionar]
for (int i = 0; i < matriz.size(); i++) {
for (int j = 0; j < matriz.size(); j++)
texto = texto + "(declare-const " + "p_" + toString(i) + "_" + toString(j) + " Bool) \n";
texto = texto + "\n";
}