elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / duda Arreglo de matriz en Archivos en desplegarlo en: 5 Mayo 2021, 00:00 am
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.
Código
  1. #include <iostream>
  2. #include <fstream> //Libreria de Archivos o Ficheros
  3. using namespace std;
  4.  
  5. int menu(){
  6.  
  7. int x;
  8. cout<<"-----Bienvenido-----"<<endl<<endl;
  9. cout<<"1.-Agregar Personas"<<endl;
  10. cout<<"2.-Ver Personas"<<endl;
  11. cout<<"3. Buscar Personas"<<endl;
  12. cout<<"4.-Salir"<<endl;
  13. cout<<"Elige una opcion:"<<endl;
  14. cin>>x;
  15.  
  16. return x;
  17. }
  18. int x=0,y=0;
  19.  
  20. void agregar(ofstream & Esc){
  21.  
  22. system("cls");
  23.  
  24.  
  25.                  //Crea archivo | agrega elementos al archivo existente
  26. Esc.open("Personas.txt",ios::out);//Crea archivo
  27.  
  28.  
  29. cout<<"elige las columnas de tu arreglo"<<endl;
  30. cin>>x;
  31. cout<<"elige los renglones de tu arreglo"<<endl;
  32. cin>>y;
  33.  
  34. string arr[x][y];
  35. string a;
  36.  
  37.  
  38. cout<<"elige el caracter de tu arreglo"<<endl;
  39. cin>>a;
  40.  
  41. for(int i=0;i<x;i++){
  42. for(int j=0;j<y;j++){
  43.  
  44. arr[i][j]=a;
  45. }
  46. }
  47.  
  48. for(int i=0;i<x;i++){
  49.  
  50. for(int j=0;j<y;j++){
  51.  
  52. Esc<<arr[i][j];
  53. }
  54. //Esc<<"\n";
  55. }
  56.  
  57.  
  58. Esc.close();//Cerra el Archivo
  59.  
  60. }
  61.  
  62. void Ver(ifstream & Lec){
  63.  
  64. system("cls");
  65.  
  66. string arr[x][y];
  67. int i,j;
  68.  
  69. Lec.open("Personas.txt",ios::in);//Abre el archivo y extrae los datos
  70. cout<<"Personas Registrada"<<endl<<endl;
  71.  
  72. while(!Lec.eof())//busca hasta el final del archivo  End of File()
  73.       {
  74.       while(!Lec.eof())//busca hasta el final del archivo  End of File()
  75.       {
  76. Lec>>arr[i][j];
  77. j++;
  78. }
  79. i++;
  80. }
  81.  
  82. // cout<<arr[0][0]<<endl;
  83. // cout<<arr[0][1]<<endl;
  84. // cout<<arr[0][2]<<endl;
  85. for(int i=0;i<x;i++){
  86.  
  87. for(int j=0;j<y;j++){
  88.  
  89. cout<<arr[i][j];
  90.  
  91. }
  92. cout<<endl;
  93. }
  94. // }
  95. Lec.close();
  96. system("pause");
  97. }
  98.  
  99.  
  100.  
  101. void Buscar(ifstream & Lec){
  102.  
  103. system("cls");
  104. // variables para guardar los datos del archivo
  105. string nom;
  106. string ape;
  107. string mat;
  108. //------------------
  109. string auxmat; //Guarda el valor de el dato que quiero que busque
  110.  
  111. Lec.open("Personas.txt",ios::in);//Abre el archivo y extrae los datos
  112.  
  113. bool encontrado=false;
  114.  
  115. cout<<"Digite la matricula: "<<endl;
  116. cin>>auxmat;
  117.  
  118. Lec>>nom;
  119.  
  120. while(!Lec.eof() && !encontrado)
  121. {
  122.  
  123. Lec>>ape;
  124. Lec>>mat;
  125.  
  126. if(mat==auxmat)
  127. {
  128.  
  129. cout<<"Nombre--------:"<<nom<<endl;
  130. cout<<"Apellido------:"<<ape<<endl;
  131. cout<<"Matricula-----:"<<mat<<endl;
  132. cout<<"_______________"<<endl;
  133.  
  134. encontrado=true;
  135. }
  136. }
  137. Lec.close();
  138.  
  139. if(!encontrado)
  140. cout<<"Dato no encontrado"<<endl;
  141.  
  142.  
  143. system("pause");
  144.  
  145. }
  146.  
  147. int main(){
  148.  
  149. ofstream Esc; //Se usa para archivo de salida
  150. ifstream Lec; //Se usa para archivo de entrada
  151.  
  152. int op;
  153.  
  154. do{
  155.  
  156.    system("cls");
  157. op=menu();
  158.  
  159. switch(op)
  160. {
  161.  
  162. case 1:
  163.   agregar(Esc);
  164.   break;
  165.  
  166. case 2:
  167. Ver(Lec);
  168. break;
  169.  
  170. case 3:
  171. Buscar(Lec);
  172. break;
  173.  
  174.  
  175. }
  176.  
  177. }while(op!=4);
  178.  
  179. }

MOD: El código debe estar entre etiquetas de Código GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines