Estoy intentado recuperar la matriz y del archivo guardarla en la matriz pero solo me lo guarda los 100 elementos en la primera posición del arreglo y quiero que me guarde cada elemento en sus coordenadas.
MOD: El código debe estar entre etiquetas de Código GeSHi
Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream> //Libreria de Archivos o Ficheros
using namespace std;
int menu(){
int x;
cout<<"-----Bienvenido-----"<<endl<<endl;
cout<<"1.-Agregar Personas"<<endl;
cout<<"2.-Ver Personas"<<endl;
cout<<"3. Buscar Personas"<<endl;
cout<<"4.-Salir"<<endl;
cout<<"Elige una opcion:"<<endl;
cin>>x;
return x;
}
int x=0,y=0;
void agregar(ofstream & Esc){
system("cls");
//Crea archivo | agrega elementos al archivo existente
Esc.open("Personas.txt",ios::out);//Crea archivo
cout<<"elige las columnas de tu arreglo"<<endl;
cin>>x;
cout<<"elige los renglones de tu arreglo"<<endl;
cin>>y;
string arr[x][y];
string a;
cout<<"elige el caracter de tu arreglo"<<endl;
cin>>a;
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
arr[i][j]=a;
}
}
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
Esc<<arr[i][j];
}
//Esc<<"\n";
}
Esc.close();//Cerra el Archivo
}
void Ver(ifstream & Lec){
system("cls");
string arr[x][y];
int i,j;
Lec.open("Personas.txt",ios::in);//Abre el archivo y extrae los datos
cout<<"Personas Registrada"<<endl<<endl;
while(!Lec.eof())//busca hasta el final del archivo End of File()
{
while(!Lec.eof())//busca hasta el final del archivo End of File()
{
Lec>>arr[i][j];
j++;
}
i++;
}
// cout<<arr[0][0]<<endl;
// cout<<arr[0][1]<<endl;
// cout<<arr[0][2]<<endl;
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
cout<<arr[i][j];
}
cout<<endl;
}
// }
Lec.close();
system("pause");
}
void Buscar(ifstream & Lec){
system("cls");
// variables para guardar los datos del archivo
string nom;
string ape;
string mat;
//------------------
string auxmat; //Guarda el valor de el dato que quiero que busque
Lec.open("Personas.txt",ios::in);//Abre el archivo y extrae los datos
bool encontrado=false;
cout<<"Digite la matricula: "<<endl;
cin>>auxmat;
Lec>>nom;
while(!Lec.eof() && !encontrado)
{
Lec>>ape;
Lec>>mat;
if(mat==auxmat)
{
cout<<"Nombre--------:"<<nom<<endl;
cout<<"Apellido------:"<<ape<<endl;
cout<<"Matricula-----:"<<mat<<endl;
cout<<"_______________"<<endl;
encontrado=true;
}
}
Lec.close();
if(!encontrado)
cout<<"Dato no encontrado"<<endl;
system("pause");
}
int main(){
ofstream Esc; //Se usa para archivo de salida
ifstream Lec; //Se usa para archivo de entrada
int op;
do{
system("cls");
op=menu();
switch(op)
{
case 1:
agregar(Esc);
break;
case 2:
Ver(Lec);
break;
case 3:
Buscar(Lec);
break;
}
}while(op!=4);
}
MOD: El código debe estar entre etiquetas de Código GeSHi