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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Manejo de archivos txt
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Manejo de archivos txt  (Leído 2,787 veces)
robertoesimez

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Manejo de archivos txt
« en: 4 Abril 2017, 05:25 am »

Me podrian decir como podria ingresar una serie de nombres en un archivo txt y de ahi que se me ordenara segun el metodo que eliga el usuario en el menu,  esto es lo que llevo
Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <conio.h>
  7. #define Max 100
  8.  
  9. using namespace std;
  10. FILE *doc;
  11.  
  12. void OrdenaBur(int , char [Max][Max], char [Max]);//mis funciones
  13. void QS(char [Max][Max],int,int);
  14. void MShell(int , char [Max][Max]);
  15. void Imprimir(int , char [Max][Max]);
  16. void Guardar(int , char [Max][Max]);
  17.  
  18.  
  19.  
  20. int main() {
  21. int Tam;
  22.  
  23. char arreglo[Max][Max], temp[Max], preg;
  24. int Menu;
  25.  
  26.  
  27. cout << "  Metodos de ordenamiento"<<endl;
  28. cout << "Seleccione una opcion"<<endl;
  29. cout <<"1.Ingresar Datos"<<endl;
  30.    cout <<"2.Mostrar Datos"<<endl;
  31.    cout <<"3.Metodo QuickSort"<<endl;
  32. cout <<"4.Metodo Burbuja"<<endl;
  33.    cout <<"5.Metodo Shell"<<endl;
  34.    cout <<"6.Salir"<<endl;
  35.  
  36. cin >> Menu;
  37.  
  38. do{//mi menu
  39. system("cls");
  40.  
  41. cout << "\n\n\t 1.Ingresar Datos\n 2.Mostrar Datos\n 3.Metodo QuickSort"
  42. << "\n 4.Metodo Burbuja\n 5.Metodo Shell\n "
  43. << "\n 7.Salir\n";
  44. if(Menu=='\0')
  45. {
  46. cout  << "\t\tSeleccione la opcion\n";
  47. cin >> Menu;
  48. }
  49. switch(Menu){
  50.  
  51. case 1:
  52. {
  53. cout << "Ingrese la cantidad de cadenas que desee ordenar\n";
  54. cin >> Tam;
  55. Tam--;
  56. Guardar(Tam, arreglo);
  57. break;
  58. }
  59. case 2:
  60. {
  61.  
  62. cout << "\nSus cadenas ingresadas son las siguientes\n"<<endl;
  63. Imprimir(Tam, arreglo);
  64. break;
  65. }
  66. case 3:
  67. {
  68. QS(arreglo,0,Tam);
  69. Imprimir(Tam,arreglo);
  70. break;
  71. }
  72. case 4:
  73. {
  74. OrdenaBur(Tam,arreglo,temp);
  75. Imprimir(Tam,arreglo);
  76. break;
  77. }
  78. case 5:
  79. {
  80. MShell(Tam, arreglo);
  81. Imprimir(Tam,arreglo);
  82. break;
  83. }
  84. case 6:
  85. {
  86. return 0;
  87.    break;
  88. }
  89.  
  90. default:
  91. cout << "Error, Debe ingresar un dato valido\n";
  92. }
  93. cout << "\nDesea volver al menu?"
  94. << "\n s para volver\n n para salir\n";
  95. cin >>preg;
  96. Menu='\0';
  97. }
  98. while(preg=='s');
  99. return 0;
  100. }
  101. void OrdenaBur(int Tam, char arreglo[Max][Max], char temp[Max])
  102. {
  103. int tb, rg;
  104. cout << "\n\nSus cadenas ordenadas alfabeticamente con el metodo burbuja son: \n" << endl;
  105.  
  106. for(tb=0; tb<Tam; tb++)
  107. for(rg=tb+1; rg<Tam+1; rg++)
  108. if(strcmpi(arreglo[tb], arreglo[rg])>0)
  109. {
  110. strcpy(temp, arreglo[tb]);
  111. strcpy(arreglo[tb], arreglo[rg]);
  112. strcpy(arreglo[rg], temp);
  113. }
  114. }
  115. void QS(char arreglo[Max][Max],int limite_izq,int limite_der)
  116. {
  117.  
  118.    int izq,der,prob;
  119.    char temporal[Max],pivote[Max];
  120.    cout << "\n\nSus cadenas ordenadas \n"
  121. << "alfabeticamente con el metodo quick sort son: \n" << endl;
  122.  
  123.    izq=limite_izq;
  124.    der = limite_der;
  125.    strcpy(pivote,arreglo[(izq+der)/2]);
  126.  
  127.    do
  128. {
  129.  
  130.        while(strcmpi(arreglo[izq],pivote)<0)
  131. izq++;
  132.        while(strcmpi(arreglo[der],pivote)>0)
  133. der--;
  134.        if(strcmpi(arreglo[izq],arreglo[der])>=0)
  135.        {
  136.            strcpy(temporal,arreglo[izq]);
  137.            strcpy(arreglo[izq],arreglo[der]);
  138. strcpy(arreglo[der],temporal);
  139.            izq++;
  140.            der--;
  141.        }
  142.  
  143.    }
  144. while(izq<=der);
  145.  
  146.    if(limite_izq<der)
  147. QS(arreglo,limite_izq,der);
  148.    if(limite_der>izq)
  149. QS(arreglo,izq,limite_der);
  150. }
  151. void MShell(int Tam, char arreglo[Max][Max])
  152. {
  153. int i,j,k;
  154. char aux[Max] ;
  155. cout << "\n\nSus cadenas ordenadas alfabeticamente con el metodo shell sort son: \n" << endl;
  156. k=Tam/2;
  157.  
  158. while(k>0)
  159. {
  160. for(i=k/*+1*/;i<=Tam;i++)
  161. {
  162. j=i-k;
  163. while(j>=0)
  164. {
  165. if(strcmp(arreglo[j],arreglo[j+k])>=0)
  166. {
  167. strcpy(aux,arreglo[j]);
  168. strcpy(arreglo[j],arreglo[j+k]);
  169. strcpy(arreglo[j+k],aux);
  170. }
  171. else
  172. {
  173. j=0;
  174. }
  175. j=j-k;
  176. }
  177. }
  178. k=k/2;
  179. }
  180. }
  181.  
  182.  
  183.  
  184. void Guardar(int Tam, char arreglo[Max][Max])
  185. {
  186. int cont;
  187. for (cont=0;cont<=Tam;cont++)
  188. {
  189. cout << "\nCadena "<<cont+1<<endl;
  190. cin >> arreglo[cont];
  191. }
  192. }
  193. void Imprimir(int Tam, char arreglo[Max][Max])//Mi duda con los archivos
  194. {
  195.    int c;
  196.    doc= fopen("alfabetico.txt","r");
  197.    if (doc==NULL){
  198.    cout<<"Error con el archivo"<<endl;
  199.  
  200.     while((c=getc(doc))!=EOF){
  201.     if(c=='\n'){
  202.      cout<<endl;
  203.     }
  204.      else {
  205.     cout<<c;
  206.     }
  207.  
  208.     fclose(doc);
  209.  
  210.     }
  211.  
  212.    }
  213. }
  214.  
  215.  
  216.  
  217.  
  218.  


En línea

ThunderCls


Desconectado Desconectado

Mensajes: 455


Coder | Reverser | Gamer


Ver Perfil WWW
Re: Manejo de archivos txt
« Respuesta #1 en: 6 Abril 2017, 04:06 am »

1- Pues necesitas usar funciones para manipular ficheros: fopen, fgets, fputs...etc (http://www.cplusplus.com/reference/cstdio/fopen/).
2- Necesitas crearte una variable global que almacenara todo el contenido de tu fichero luego que lo leas (array, vector, list...tu eliges)
3- Luego solo llamas las funciones de ordenamiento sobre tu variable en memoria y al salir de la aplicación vuelves a guardar todo al .txt con las mismas funciones de 1


En línea

-[ "…I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
manejo de archivos en C++
Programación C/C++
mauroooooooo 1 2,986 Último mensaje 19 Abril 2012, 03:45 am
por Beakman
manejo de archivos txt
Programación C/C++
flony 3 2,541 Último mensaje 12 Febrero 2013, 22:40 pm
por flony
Manejo de Archivos
Programación General
danndres 0 1,670 Último mensaje 25 Septiembre 2014, 02:38 am
por danndres
Manejo de archivos en dev c++
Programación C/C++
darckrain 3 5,942 Último mensaje 4 Marzo 2015, 02:31 am
por engel lex
Manejo de archivos en C
Programación C/C++
corebv 6 2,582 Último mensaje 16 Mayo 2016, 00:01 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines