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;
}
Para guardar cualquier información en un archivo tienes que realizar los siguientes pasos:
- Incluir los archivos de cabecera necesarios:
#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:
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:
if(!fichero){
cout << "Error al abrir el fichero: " << nombreFichero << endl;
exit(EXIT_FAILURE);
}
- Guardar los datos que quieras en el fichero:
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:
fichero.close();