Hey que tal?
miren he tratado de crear un programa que manipula archivos.
La idea es que el programa lea archivos y los modifique haciendo uso de una lista enlazada.
El problema es que me he quedado atorado a la hora de imprimir los valores.
El programa me los imprime en hexadecimal, y no se quemo hacerle para que me los imprima en caracteres(alfanumerico)
El programa debe leer y/o escribir datos en un archivo.
El archivo puede ó no estar (en caso de no estar, se debe crear)
una vez leído el archivo, debo almacenar los datos en un nodo y ya almacenado en nodos, estos los inserto en una lista enlazada
para manipularlos con la RAM y ya ordenados (o habiendo hecho la modificación pedida)
creo otro archivo con las modificaciones ya hechas.
El problema es que me he quedado troncado a la hora de querer almacenar los datos en un nodo.
el nodo (Alumno lo usare para la lista enlazada)
y el nodo (Registro lo usare para el manejo de datos del archivo)
#include <iostream>
#include <fstream>
//#include <string.h>
#include <stdlib.h>
using namespace std;
struct Registro
{
int numBoleta;
string nombreA;
string estado;
int promedio;
};
struct Alumno
{
int numBoleta;
string nombreA;
string estado;
int promedio;
struct Alumno *siguiente;
};
class MdA
{
private:
struct Alumno *inicio;
struct Alumno *final;
int Nnodo;
public:
MdA()
{
inicio=final=NULL;
// nnodo=Nnodo=0;
};
Registro registro;
void agregar();
void consultar();
void mostrar();
void modificar();
void borrar();
void borradoFisico();
void insertaFinal(int dato);
void borraInicio();
void borraFinal();
void muestraLista();
void buscarTDato(int dato);
Alumno* buscarDato(int dato);
Alumno* buscarPosicion(int Dato);
void ordenarMenorMayor();
void ordenarMayorMenor();
void posicionNodos(int *x, int e, int d);
void posicionNodo(int encontrado, int posicion, int dato);
void modificarDato(int dato);
void modificarPosicion(int dato);
int leerDato();
void menu();
void opciones();
void verLista();
void numNodos();
void borrarDato(int datos);
};
void MdA::agregar()
{
int boleta=0;
bool encuentra=0;
system("clear");
ofstream write("Alta de alumnos.txt", ios_base::app);
ifstream read("Alta de alumnos.txt");
cout<<"Favor de ingresar tu numero de boleta: ";
fflush(stdin);
cin>>boleta;
while (!read.eof())
{
if(registro.numBoleta==boleta)
{
encuentra=1;
cout<<"Su boleta ya ha sido registrada anteriormente.\n";
cout<<"Favor de acudir a servicios escolares para solucionar el problema.\n";
cout<<"Gracias.";
}
}
if(!encuentra)
{
cout<<"Favor de llenar los siguientes campos para realizar su registro: \n";
ofstream write("Alta de alumnos.txt", ios_base::app);
cout<<"\nFavor de ingresar tu nombre: ";
cin>>registro.nombreA;
cout<<"\nFavor de ingresar tu estado academico actual: ";
cin>>registro.estado;
cout<<"\nFavor de ingresar tu promedio actual: ";
cin>>registro.promedio;
write<<(®istro);
}
}
si alguien tiene una sugerencia
sera bien recibida, gracias