AYUDA FICHERO DE SALIDA C++

Iniciado por gomezjuan, 14 Mayo 2020, 17:32 PM

0 Miembros y 1 Visitante están viendo este tema.

gomezjuan

Tengo que crear un fichero llamado matriz.txt en el que se imprima una matriz de 7x7 formada por números con dos decimales. Llamo i al número de columnas y k al número de filas.
    -   La matriz tiene que cumplir las siguientes condiciones:
    -   La primera y ultima columna (i[0], i[6]) tienen que ser 0.00
    -   La primera fila k[0] (obviando las columnas i[0], i[6]) tiene que cumplir la ecuacion
         x(i,0)=pi * i
    -   La segunda fila k[1] (obviando las columnas i[0], i[6]) debe cumplir x(i,1) =
        2*x(i,0)+3x(i+1,0)
    -   Las demás filas deben cumplir x(i,k) = 2*x(i,k-2)+5*x(i+1,k-1)
Consigo imprimir la matriz por consola pero no soy capaz de crear el fichero:

#include <iostream>
#include <iomanip>
#include <fstream>

int main()
{
    const double pi = 3.14159;
    double matriz[7][7];

   
    for(unsigned k = 0; k<7 ; k++){
        matriz[k][0] = 0.00 ;
        matriz[k][6] = 0.00 ;
    }
   
    for(unsigned i = 0; i<6 ; i++){
        matriz[0][i] = pi*i;
        std::cout << matriz[0][i] << "\t" << std::endl;
    }
   
    for (int i = 1; i< 6 ; i++){
        matriz[1][i] = 2*matriz[0][i]+3*matriz[0][i+1];
    }
   
    for(int k = 2; k < 7; k++){
        for (int i =1; i < 6; i++){
            matriz[k][i] = 2  * matriz[k-2][i] + 5 * matriz[k-1][i+1];
        }
    }   
    std::cout << matriz << std::endl;

}

K-YreX

Para guardar cualquier información en un archivo tienes que realizar los siguientes pasos:
  • Incluir los archivos de cabecera necesarios:
    Código (cpp) [Seleccionar]

    #include <iostream> // Para entrada y salida de datos: cout / cin
    #include <fstream> // Para flujos de entrada (ifstream) y salida (ofstream)
    #include <cstdlib> // Para la funcion exit() y la constante EXIT_FAILURE

    using namespace std;


  • Abrir el flujo de salida:
    Código (cpp) [Seleccionar]

    string nombreFichero = "salida.txt";
    ofstream fichero(nombreFichero);

    Puedes definir una ruta en el nombre del archivo si quieres que se cree en otra diferente a la actual.

  • Comprobar que se ha abierto correctamente:
    Código (cpp) [Seleccionar]

    if(!fichero){
      cout << "Error al abrir el fichero: " << nombreFichero << endl;
      exit(EXIT_FAILURE);
    }


  • Guardar los datos que quieras en el fichero:
    Código (cpp) [Seleccionar]

    for(size_t i = 0; i < filas; ++i){
      for(size_t j = 0; j < columnas; ++j){
        fichero << matriz[i][j] << "  ";
      }
      fichero << endl;
    }


  • Cerrar el flujo:
    Código (cpp) [Seleccionar]
    fichero.close();
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;