Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - pizarron

#1
Programación C/C++ / Re: sockets en linux
3 Junio 2010, 10:10 AM
Te tiro una de las mejores (sino la mejor) guía para empezar con sockets que esta principalmente orientada al manejo de sockets en linux:
http://www.arrakis.es/~dmrq/beej/home.htm
#2
Programación C/C++ / Re: Keylogger en C++
3 Junio 2010, 09:51 AM
Si todavía queres seguir usando GetAsyncKeyState() podes hacer lo siguiente para los caractéres alfanuméricos:

char keys() {
char c = '/';
for( char key='0'; key<='Z'; key++ ){
if( key<='9' || key>='A' )
if( GetAsyncKeyState(key) ){
c = key;
break;
}
}

if( c=='/' ){
if (GetAsyncKeyState(VK_SHIFT)) c = '^';
else if (GetAsyncKeyState(VK_ESCAPE)) c = 0x1B;
else if (GetAsyncKeyState(VK_BACK)) c = ' ';
}

return c;
}
#3
nicolas_cof, tenes razón que un public al principio seria suficiente, pero algunos utilizan los modificadores además como separador entre los data members y los métodos, una forma de dejar la declaración de la clase un poco más legible.

M3LiNdR1, que no sea private no quiere decir que esté mal, el código va a compilar y va a funcionar como espera, pero corre el riesgo de tener esas propiedades expuestas y que luego en caso de error sea complejo encontrar la falla.


juni85, tu error esta en el método cambiar_nombre() :

Código (cpp) [Seleccionar]
void cambiar_nombre(){
     string nom,nuevo;
     Empleado pa;
//Empleado *pa;
     int em;
   
     cout<<"Introduce el nombre del empleado a cambiar "<<endl;
     getline(cin,nom);
     em=BuscarEmpleado(nom);
     if(em==-1)cout<<"Nombre no valido "<<endl;
     else{
         cout<<"Introduce el nuevo nombre "<<endl;
         getline(cin,nuevo);
         pa.set_nombre(nuevo);
      //pa->set.nombre(nuevo);---el compilador se queda pillado
}


Estás llamando a set_nombre() a un objeto creado solo en este método que no apunta a ninguno de los elementos del vector de Empleados. Lo que yo haría sería crear una referencia hacia el empleado que se está buscando y cambiarle el nombre :

Código (cpp) [Seleccionar]
void cambiar_nombre(){
     string nom,nuevo;
     int em;
   
     cout<<"Introduce el nombre del empleado a cambiar "<<endl;
     getline(cin,nom);

     // Busca al empleado en el vector por el nombre
     int indiceEmpleado;
     for( indiceEmpleado = 0; indiceEmpleado < v.size(); indiceEmpleado++ ){
           if( v[indiceEmpleado].get_nombre() == nom )
                 break;
     }

     // Si el indice encontrado es igual al tamaño del vector, el nombre no fue encontrado
     if( indiceEmpleado == v.size() ){
           cout<<"Nombre no valido "<<endl;
     }
     else{
         // Creo la referencia al empleado encontrado para poder trabajar en ese elemento
         Empleado & pa = v[indiceEmpleado];
         cout<<"Introduce el nuevo nombre "<<endl;
         getline(cin,nuevo);
         pa.set_nombre(nuevo);
      }
}


De paso, echale una mirada a BuscarEmpleado() que tiene errores.

Saludos.