Antes de nada, quita la cebecera conio porque no es estandar y usa getchar() en vez de system("pause"), quita tambien todas las cabeceras que no vayas a usar (en este caso y solo por lo que tienes en el codigo puedes usar solamente iostream y fstream), y como ultimo indenta el codigo; con esto no mejoras el proceso pero lo 'maquillas' a nivel de codigo.
Puedes probar a plantear el flujo de datos de otras formas: en vez de declarar una array de 2881 elementos puedes usar algo de memoria dinamica para expandir un contenedor, o crear listas enlazadas, o usar vectores. En c++ se recomienda usar los contenedores stl en vez de usar tus propios manejadores de memoria (aunque tambien puedes hacerlo, pero te será mas complejo). Con vectores y structs es facil:
Código:
typedef struct {
int entero;
float flotante;
} PAR;
vector <PAR> v_pares;
vector <PAR>::iterator itr;
PAR par;
//me salto lo de abrir archivo y comprovaciones de error
while (archivo.good()) {
archivo >> par.entero >> par.flotante;
v_pares.push_back(par);
}
//vuelcas los datos con un iterador
for(itr = v_pares.begin(); itr < v_pares.end(); itr++) {
cout << (*itr).entero << ", " << (*itr).flotante << endl;
}
//tambien puedes acceder a los elementos del vector como si fuese un array
for(int q = 0; q < v_pares.size(); q++) {
cout << v_pares[q].entero << ", " << v_pares[q].flotante << endl;
}
//liberas el vector
v_pares.clear();
De esta forma puedes cargar todo el archivo sin preocuparte por el numero de elementos que guardas.
Saludos
vosk