Hola!!
Necesito una función que lea unos numeros de un archivo de texto que luego los cojera y los ordenara para añadirlos por orden a un miembro de una clase
(dat.topScore)void readScore() {
char linea[128]; // para la lectura
int lineas = 0; // para ver las lineas del archivo
int temp[128]; /// original
int _temp[128]; // temporal para ordenar
for (int i = 0; i < 128; i++) {
_temp[i] = 0; // añado inicializador
}
/*** obtengo las lineas del archivo que he definido anteriormente ***/
while (!dataFile_o.eof()) {
dataFile_o.getline(linea,sizeof(linea));
temp[lineas] = atoi(linea);
lineas++;
}
/***** Calculo el maximo de la matriz y la guardo en otra (_temp) y
para que no se repita el numero le pongo de valor 0 a la matriz
original y así evadir el repetimiento ****/
for (int i = 0; i < lineas; i++) {
_temp[i] = *max_element(temp,temp+lineas);
for (int z = 0; z < lineas; z++) {
if (_temp[i] == temp[z]) {
temp[z] = 0;
}
}
cout << _temp[i]; // AQUÍ LO IMPRIME ORDENADO
}
/*** Finalmente guardo la matriz ordenada en un miembro de una clase ***/
for (int i = 0; i < lineas; i++) {
_temp[i] = dat.topScore[i]; // NO ENTIENDO PORQUE NO LO GUARDA BIEN (saca todo de ceros)
cout << _temp[i];
}
}
El error ya lo he comentado más o menos en el código, cuando hago la impresión durante el primer ciclo for de ordenar sale todo bien luego cuando hago la impresión de nuevo me sale todo de "00000"...
Nose si me explico xD Si hay dudas preguntad porfavor!! Saludos y gracias por leer