Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/10/2010, 13:42
lukz101
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 13 años, 6 meses
Puntos: 0
Ayuda, no puedo leer cadenas con espacios

Hola a todos, uso el Dev C++ y me encuentro haciendo un trabajo de la u, donde, dbeo emular a un banco, el punto es que cuando debo almacenar el nombre y apellido del usuario a causa del espacio no puedo usar "string" entonces lei y vi que debia hacer un array de char y leer con "gets" pero cuando compilo no me lee el nombre, les anexo el codigo fuente, (aun no lo temrino xq n me corre esa parte)
Código:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
using namespace std;
int main(){
      int i,op, pos,code,n=0;
      char nombre[35];
      char q;
      float dinero;
      struct{
       int cod;
       char name[35];
       float money;
      }A[50];
    
      do{system("cls");
         cout<<"\n";
         cout<<"***********************************************\n";
         cout<<"*****************BIENVENIDO********************\n";
         cout<<"***********************************************\n";
         cout<<"\n\n\n";
         cout<<"*\t\t\t(1)Abrir cuenta\n*\t\t\t(2)Cerrar Cuenta\n*\t\t\t";
         cout<<"(3)Consultar Cuenta\n*\t\t\t(4)Consignar a la cuenta\n*";
         cout<<"\t\t\t(5)Retirar de la cuenta\n*\t\t\t(6)Listar cuentas";
         cout<<"\n*\t\t\t(7)Finalizar";
         cout<<"\n\n\t\t\t\tDigite una opcion";
         cin>>op;
         while(op<1||op>7){
                           cout<<"\nERROR: Opcion invalida\n ";
                           cin>>op;
         }
      
         switch (op){
                case 1:
                do{system("cls");
                     do{  
                          pos=-1;
                          cout<<"\n\nPorfavor ingrese el codigo de identificacion\n";
                          cin>>code;
                          for (i=0;i<n-1;i++){
                               if(A[i].cod==code){pos=i;}
                          }
                          if (pos!=-1){
                          cout<<"\nError: El codigo ingresado ya existe!!!!!\n";
                          cout<<"\nCodigo: "<<A[pos].cod;
                          printf ("%s\n",A[pos].name);
                          cout<<"\nMonto: $"<<A[pos].money;}
                          else
                          A[n].cod=code;
                     }while(pos!=-1);
                     printf("\nAhora ingrese su primer nombre y apellido %s\n ");
                     gets(nombre);
                     n++;
                     A[n].name[35]=nombre[35];
                     cout<<"\nPor ultimo ingrese el monto de dinero que desea guardar\n";
                     cin>>dinero;
                     while(dinero<=0){
                                      cout<<"\nERROR:Valor invalido\n";
                                      cin>>dinero;
                     }
                     A[n].money=dinero;
                     cout<<"\nDesea crear otra cuenta? (Y/N)\n";
                     cin>>q;
                }while(q=='y' || q=='Y');
                break;
                case 2:
                do{system("cls");
                          pos=-1;
                          cout<<"\n\nPorfavor ingrese el codigo de identificacion\n";
                          cin>>code;
                          for (i=0;i<n-1;i++){
                               if(A[i].cod==code){pos=i;}
                          }
                          if (pos>-1){
                                 cout<<"\nCodigo: "<<A[pos].cod;
                                 puts (A[pos].name);
                                 cout<<"\nMonto: $"<<A[pos].money;
                                 cout<<"\nRealmente desea elminar la cuenta?(Y/N)\n";
                                 cin>>q;
                                 if(A[pos].money==0){
                                      if(q=='y'||q=='Y'){
                                         for(i=pos;i<n-1;i++){A[i]=A[i+1];}
                                          n=n-1;
                                      }
                                 }else{cout<<"\nERROR: No se puede cerrar cuenta porque aun tiene dinero guardado\n";}
                           }else{cout<<"\nERROR: Cuenta inexistente\n";}
                                 cout<<"\nDesea eliminar otra cuenta? (Y/N)\n";
                cin>>q;
                }while(q=='y' || q=='Y');
                break;
                case 3:
                do{system("cls");
                        pos=-1;
                        cout<<"\n\nPorfavor ingrese el codigo de identificacion\n";
                        cin>>code;
                        for (i=0;i<n-1;i++){
                             if(A[i].cod==code){pos=i;}
                        }
                        if (pos>-1){
                                 cout<<"\nCodigo: "<<A[pos].cod;
                                 printf("%s\n",A[pos].name);
                                 cout<<"\nMonto: $"<<A[pos].money;
                        }else{cout<<"\nERROR: Cuenta inexistente\n";}
                        cout<<"\nDesea consultar otra cuenta? (Y/N)\n";
                        cin>>q;
                }while(q=='y' || q=='Y');
                break;
         }
         cout<<"\nVolver a menu? (Y/N)\n";
         cin>>q;
      }while(q=='y' || q=='Y');
}
Espero respuesta gracias :)