Hola.
El formato de guardado es bastante inusual y muy, pero muy propenso a equívocos.
Pero si el archivo txt mantiene
estrictamente el formato que mostras en tu mensaje, para cargar los datos en la matriz se podría hacer:
Código C++:
Ver original#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
using namespace std;
int CargarMatriz(float matriz[][2]);
void MostrarMatriz(float matriz[][2], int rows);
...
int main()
{
float matriz[100][2]; // n alumnos x 2 notas
int rows = CargarMatriz(matriz);
MostrarMatriz(matriz, rows);
...
}
int CargarMatriz(float matriz[][2])
{
ifstream alumnos("C:\\RegistroNotas.txt",ifstream::in);
string line;
int row = 0;
while(!alumnos.eof()) {
if(getline(alumnos,line,'\n')){
if (line.find(":") != string::npos)
if (line.find("Nota 1") != -1)
matriz
[row
][0] = atof(line.
substr(line.
find(":")+2,line.
length()).
c_str()); if (line.find("Nota 2") != string::npos) {
matriz
[row
][1] = atof(line.
substr(line.
find(":")+2,line.
length()).
c_str()); row++;
}
}
}
alumnos.close();
return row;
}
void MostrarMatriz(float matriz[][2], int rows)
{
cout.precision(2);
for(int i = 0; i < rows; i++)
cout << "Alumno " << i+1 << ", Nota 1: " << fixed << matriz[i][0]
<< ", Nota 2: " << fixed << matriz[i][1] << endl;
}
...
Si fuera un caso real, no un ejemplo, habría que disponer de un arreglo adicional para almacenar los nombres de los alumnos...
Saludos. :)