Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Como escribir en un archivo desde una función - C++

Estas en el tema de Como escribir en un archivo desde una función - C++ en el foro de C/C++ en Foros del Web. Estimada gente, soy bastante nuevo en el tema y pido una ayuda para resolver este tema. Dentro de "main" defino una variable de flujo llamada ...
  #1 (permalink)  
Antiguo 04/05/2011, 20:47
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Pregunta Como escribir en un archivo desde una función - C++

Estimada gente, soy bastante nuevo en el tema y pido una ayuda para resolver este tema.


Dentro de "main" defino una variable de flujo llamada "archivo" que conecta a "prueba.txt" , luego, lo que no me sale, es escribir desde una función llamada "escribir" en el archivo "prueba.txt"

Como errores me pone:


14|error: 'ofstream' has not been declared|
51|error: 'ofstream' has not been declared|
|In function 'void escribir(double, int)':|
55|error: invalid operands of types 'int' and 'const char [27]' to binary 'operator<<'|
||=== Build finished: 3 errors, 0 warnings ===|

El código simplificado que armé para explicarme es el siguiente:


#include <iostream>
#include <fstream>

void escribir (double entrada);

int main()
{
using namespace std;
ofstream archivo;
archivo.open("prueba.txt", ios::app);

double entrada;

cout << "Ingrese el numero de entrada a escribir en el archivo" << endl;
cin >> entrada;

archivo << "Eso fue todo lo que escribimos en el archivo";

archivo.close(); // Cierra el archivo de salida en donde aparecen todos los puntos.

return(0);
}


void escribir (double entrada)
{
using namespace std;
double a = entrada;
archivo << "El numero que escribo en el archivo es: " << a;
cout << "No hay mas datos para escribir " << endl;
}

Muchas gracias!!
  #2 (permalink)  
Antiguo 05/05/2011, 04:45
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Como escribir en un archivo desde una función - C++

Pon el using namespace std; después de los includes.
  #3 (permalink)  
Antiguo 05/05/2011, 04:55
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: Como escribir en un archivo desde una función - C++

Código C:
Ver original
  1. using namespace std;
No debería ser declarado allí abajo. La otra cosa es que no llamas a la función desde main.


Intenta esto y modificalo como te parezca
Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. void escribir (ofstream& archivo, double entrada);
  6.  
  7. int main()
  8. {
  9. using namespace std;
  10. ofstream archivo;
  11. archivo.open("prueba.txt", ios::app);
  12.  
  13. double entrada;
  14.  
  15. cout << "Ingrese el numero de entrada a escribir en el archivo" << endl;
  16. cin >> entrada;
  17.  
  18. escribir(archivo, entrada);
  19.  
  20.  
  21. archivo.close(); // Cierra el archivo de salida en donde aparecen todos los puntos.
  22.  
  23. return(0);
  24. }
  25.  
  26.  
  27. void escribir (ofstream& archivo, double entrada)
  28. {
  29. archivo << "El numero que escribo en el archivo es: " << entrada <<endl;
  30. }
__________________
Foros Desarrollo de Juegos
  #4 (permalink)  
Antiguo 07/06/2011, 15:05
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Respuesta: Como escribir en un archivo desde una función - C++

Gracias asi anduvo!
  #5 (permalink)  
Antiguo 07/06/2011, 16:15
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Como escribir en un archivo desde una función - C++

El problema estaba tambien que en la funcion escribir nunca pasabas referencias del archivo abierto...entonces el compilador no sabia a que referia la variable archivo. Por eso se agrego un argumento mas a la funcion escribir que es el flujo del archivo.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:36.