Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda programa

Estas en el tema de Ayuda programa en el foro de C/C++ en Foros del Web. buenas aqui les comento mi problema y no c en q estoy fallando me piden q ingrese 6 escuderias de formula 1 y en un ...
  #1 (permalink)  
Antiguo 28/07/2010, 12:18
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Exclamación Ayuda programa

buenas aqui les comento mi problema y no c en q estoy fallando me piden q ingrese 6 escuderias de formula 1 y en un txt . en el txt tiene q ir ingresado esto :Código de la escudería (debe ser generado por el sistema), nombre de la escudería, año de fundación y país sede de la escudería. ok yo lo hago perfecto pero mi problema es tengo q tener mi contador guardado en un txt en caso d q cierre la aplicacion y la abras tenga valores el contador y no poder ingresar mas d 6 aki les muestro mi codigo mi funcion ingresar ();
Código C++:
Ver original
  1. void ingresar_escud(){
  2.  
  3.  
  4. static int i=1;
  5. int x=0;
  6. char op[20];
  7. int l=0;
  8. int cont_escud=0;
  9. int cod_escud=0;
  10.  
  11. ofstream archivo1;
  12. archivo1.open("escuderias.txt",ios::app);
  13.  
  14. ofstream contaux;
  15. contaux.open("cnta.txt",ios::app);
  16.  
  17. ifstream cont;
  18. cont.open("cnt.txt");
  19.  
  20. while(!cont.eof()){
  21.  
  22. if(!cont.eof()){
  23. cont>>cont_escud;
  24. cont_escud=l;
  25. }
  26.  
  27.  
  28.  
  29. do{
  30.  
  31.  
  32.  
  33. if((l<6)||(cont_escud<6)){
  34.  
  35. cont_escud++;
  36. cod_escud++;
  37. x=1;
  38. cout<<"ingresar Nombre escuderia "<<endl;
  39. cin>>escud.nombre_escud;
  40.  
  41. cout<<"ingresar ano de fundacion"<<endl;
  42. cin>>escud.ano_escud;
  43.  
  44. cout<<"ingresar pais sede de la escuderia"<<endl;
  45. cin>>escud.pais_escud;
  46.  
  47. archivo1<<cod_escud<<" "<<escud.nombre_escud<<" "<<escud.ano_escud<<" "<<escud.pais_escud<<" ";
  48. archivo1.put('\n');
  49.  
  50.  
  51. }
  52. cout<<"desea ingresar otro dato 1=SI 2=no"<<endl;
  53. cin>>op;
  54. }while(op[0]!='2');
  55.  
  56.  
  57. contaux<<cont_escud<<" ";
  58.  
  59.  
  60. }
  61. if(x==0){
  62.  
  63. cout<<"escuderias maximas permitidas"<<endl;
  64. }
  65.  
  66.  
  67. contaux.close();
  68. cont.close();
  69.  
  70. remove("cnt.txt");
  71. rename("cnta.txt","cnt.txt");
  72. archivo1.close();
  73.  
  74. }
  #2 (permalink)  
Antiguo 28/07/2010, 15:53
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ayuda programa

No se bien en que estas fallando, pero mi preguntas es, cada vez que queres un dato de la escuderias cargas el archivo lo lees entero y buscas el dato........ No seria bueno cada vez que cargas el programa, lees los datos y los almacenas en variables....Al cerrar el programa vuelcas toda la info al TXT y listo.

Igualmente fijate aca:

if(!cont.eof()){
cont>>cont_escud;
cont_escud=l;
}

La variable l se inicializa en cero y nunca cambia. Osea la variable cont_escud siempre es cero. Es como que lees y despues pisa el valor!
  #3 (permalink)  
Antiguo 28/07/2010, 16:12
 
Fecha de Ingreso: julio-2010
Mensajes: 14
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Ayuda programa

si lo q me dices es lo q quiero hacer pero me esta fallando no veo como hacerlo lo q quiero es q mi contador lea en el archivo cnt.txt el numero donde quedo y lo pase a una variable en este caso l y asi no pierda aunque cierre el programa los valores d mi contador para poder hacer bien la restriccion d q solo sean 6 escuderias asi sea q cierres el programa y las variables queden en blanco y lo abras y capture el valor de ese contador y saber si esta full las escuderias o no
  #4 (permalink)  
Antiguo 28/07/2010, 16:16
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Ayuda programa

Fiajte lo que te dije anteriormente:

if(!cont.eof()){
cont>>cont_escud;
cont_escud=l;
}

La variable l nunca es modificada!! Y queda siempre en cero. A lo mejor queres hacer al reves:

l=cont_escud;

Etiquetas: programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:09.