• Viernes 8 de Noviembre de 2024, 17:41

Autor Tema:  Como escribir en un archivo desde una función - C++  (Leído 1665 veces)

tiwanacote

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Como escribir en un archivo desde una función - C++
« en: Jueves 5 de Mayo de 2011, 04:42 »
0
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!!

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Como escribir en un archivo desde una función - C++
« Respuesta #1 en: Jueves 5 de Mayo de 2011, 07:44 »
0
Probe el codigo que publicaste, y el detalle que note es que colocas la sentencia "using namespace std" dentro de main(), al igual que el nombre del archivo, si lo haces asi, no te reconocera el namespace, y por lo tanto, creo que esa es la razon por la que te marca el error de "ofstream has not been declared". y respecto al nombre de archivo, al estar declarado dentro de main, es una variable local, y tampoco te la reconocera dentro de la funcion escribir, en este caso, puedes o pasarle como parametro la variable archivo, o declarar archivo como global. Y el namespace se declara al principio de tu programa, lo mas comun y recomendable es despues de tus archivos include.

Te dejo el codigo corregido como creo que deberia ir, modifica tu codigo original en base a esto. Ah y tambien elimine la variable local "a" de la funcion escribir, me parece que es innnecesaria, y utilizo directamente el parametro entrada.

Código: C++
  1.  
  2. #include <iostream>
  3. #include <fstream>
  4.  
  5. // Los namesapce al principio, despues de los include, y no dentro de cada funcion como lo estas haciendo.
  6. using namespace std;
  7. // variable declarada como global, para que la reconozca la funcion escribir.
  8. // tambien podrias pasarla como parametro, en caso de que no quieras variables globales
  9. ofstream archivo;
  10.  
  11. void escribir (double entrada);
  12.  
  13. int main()
  14. {
  15.     archivo.open("prueba.txt", ios::app);
  16.  
  17.     double entrada;
  18.  
  19.     cout << "Ingrese el numero de entrada a escribir en el archivo" << endl;
  20.     cin >> entrada;
  21.  
  22.     archivo << "Eso fue todo lo que escribimos en el archivo";
  23.  
  24.     archivo.close(); // Cierra el archivo de salida en donde aparecen todos los puntos.
  25.  
  26.     return(0);
  27. }
  28.  
  29. void escribir (double entrada)
  30. {
  31.     // variable local innecesaria a mi parecer, utilza directamente el parametro entrada
  32.     //double a = entrada;
  33.     archivo << "El numero que escribo en el archivo es: " << entrada;
  34.     cout << "No hay mas datos para escribir " << endl;
  35. }
  36.  
  37.  
  38.  

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

tiwanacote

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Como escribir en un archivo desde una función - C++
« Respuesta #2 en: Jueves 5 de Mayo de 2011, 22:56 »
0
Muchisimas gracias!!! Has estado muy claro en la explicación! Funcionó perfecto!

Saludos! :D