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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


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

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Duda con estructuras y punteros
« en: 12 Diciembre 2016, 07:23 am »

Hola tengo una duda respecto al almacenamiento de datos en estructuras y creo que esto también va ligado a punteros pero no sé mucho sobre este tema.

Resulta ser que ocupo capturar los datos mediante una estructura y luego almacenarlos en una matriz, creí que lo estaba haciendo bien pero cuando quiero imprimir no me imprime nada, espero que me puedan ayudar con esto gracias. :huh:

Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. struct strdatos {
  7.  
  8. string cedula;
  9. string nombre;
  10. string edad;
  11. string salario;
  12.  
  13. }Empleado;
  14.  
  15.  
  16. int main () {
  17.  
  18. string mat [3][4];
  19. int f = 0;
  20. int c = 0;
  21.  
  22. int opc;
  23.  
  24. do {
  25.  
  26. system("cls");
  27. cout << "***********  Menu ******************" << endl;
  28. cout << "1 . Ingresar Datos" << endl;
  29. cout << "2. Mostrar Planilla" << endl;
  30. cout << "3. Salir" << endl << endl;
  31. cin >> opc;
  32. cout << endl;
  33.  
  34.  
  35.  
  36. switch (opc) {
  37.  
  38. case 1:
  39.  
  40. system ("cls");
  41.  
  42. for (f = 0; f <= 2; f++) {
  43.  
  44.  
  45. cout << "Ingrese Cedula ";
  46. cin >> Empleado.cedula;
  47. Empleado.cedula = mat [f][0];
  48.  
  49. cout << "Ingrese Nombre ";
  50. cin >> Empleado.nombre;
  51. Empleado.nombre = mat [f][1];
  52.  
  53. cout<< "Ingrese Edad ";
  54. cin >> Empleado.edad;
  55. Empleado.edad = mat [f][2];
  56.  
  57. cout<< "Ingrese Salario ";
  58. cin >> Empleado.salario;
  59. Empleado.salario = mat [f][3];
  60.  
  61. cout << "Empleado Ingresado" << endl << endl;
  62.  
  63. for (c = 0; c <= 3; c++){
  64.  
  65. }
  66. }
  67. break;
  68.  
  69. case 2:
  70.  
  71. for (f = 0; f <= 2; f++) {
  72. for (c = 0; c <= 3; c++){
  73.  
  74. cout << mat [f][c] << " ";
  75.  
  76. }
  77. }
  78.  
  79. }// Switch
  80.  
  81.  
  82. }while (opc != 3);
  83.  
  84.  
  85. return 0;
  86. }
  87.  


Mod: Los códigos deben ir en etiquetas GeSHi


« Última modificación: 12 Diciembre 2016, 07:31 am por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duda con estructuras y punteros
« Respuesta #1 en: 12 Diciembre 2016, 07:36 am »

Código
  1. cout << "Ingrese Cedula ";
  2. cin >> Empleado.cedula;
  3. Empleado.cedula = mat [f][0];

te traduzco tu código


Código:
imprimir "ingrese cedula"
Empleado.cedula ahora contendrá valor ingresado por el usuario
Empleado.cedula ahora contendrá valor ubicado en mat en la posición "f" sub indice 0

luego imprimes el contenido de mat... el problema es... nunca pusiste ningún valor en mat


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Miguel2097

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duda con estructuras y punteros
« Respuesta #2 en: 12 Diciembre 2016, 07:42 am »

Gracias a por tu respuesta!

Aún no entiendo bien, creí que al hacer el Empleado.cedula = mat [f][0] ya lo estaba guardando en la matriz  pero cuando lo imprimo no sale nada por pantalla que seria en el case 2
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duda con estructuras y punteros
« Respuesta #3 en: 12 Diciembre 2016, 07:46 am »

te explico... el operador "=" solo funciona como en matemática, logica y cualquier ambito común... es decir funciona de derecha a izquierda.... el contenido a la derecha será copiado en la izquierda


Código
  1. int a = 1;
  2. int b = 2;
  3.  
  4. a = b;

en ese caso el contenido de b será copiado en a, nunca lo contrario... lo mismo pasa para la matriz...


Código
  1. Empleado.cedula = mat [f][0];

el contenido de la derecha será copiado en la izquierda, nunca lo contrario

para que el contenido se coloque en la matriz, tienes que colocarla a la izquierda

es decir

Código
  1. mat [f][0] = Empleado.cedula;
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Miguel2097

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duda con estructuras y punteros
« Respuesta #4 en: 12 Diciembre 2016, 07:57 am »

Genial amigo ya entendi!

Muchas Gracias por tu ayuda!!  ;D

Código
  1. cout << "Ingrese Cedula ";
  2. cin >> Empleado.cedula;
  3. Empleado.cedula = mat [f][0];

te traduzco tu código


Código:
imprimir "ingrese cedula"
Empleado.cedula ahora contendrá valor ingresado por el usuario
Empleado.cedula ahora contendrá valor ubicado en mat en la posición "f" sub indice 0

luego imprimes el contenido de mat... el problema es... nunca pusiste ningún valor en mat


Disculpa la molestia ahora tengo un pequeño problema con un calculo matemático, ocupo que todo salario mayor a 50.000 se le haga un aumento en el 7% , los demas calculos si me estan funcionando correctamente excepto el de mayor a 50.000.



   
               for (f = 0; f <= 2; f++) {
                  for (c = 0; c <= 3; c++){
                     
                     cout << mat [f][c] << " ";
                     
                  }
                  
                  cout << endl;
                  
                  stringstream (mat[f][3]) >> aumento;
                  
                  if (aumento < 50000 ) {
                     aumento = (aumento * 0.3) + aumento;
                     
                  }else if (aumento = 50000) {
                     aumento = (aumento * 0.15 ) + aumento;
                     
                  }else if (aumento > 50001 ) {
                     aumento = (aumento * 0.07) + aumento;
                     
                  }

Cabe destacar que todo valor mayor a 50.000 mil me imprime con el aumento 57.500  :huh:

MOD: No hacer triple post. Usa el botón modificar.
« Última modificación: 12 Diciembre 2016, 11:10 am por MCKSys Argentina » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[C] Estructuras y punteros a funciones
Programación C/C++
Amadeo Magnus 1 6,270 Último mensaje 13 Octubre 2010, 15:05 pm
por Karman
estructuras punteros programacion c
Programación C/C++
adexrn 4 3,767 Último mensaje 9 Abril 2012, 10:10 am
por adexrn
Punteros a estructuras...???
Programación C/C++
Ja_90 4 2,613 Último mensaje 11 Noviembre 2014, 21:10 pm
por eferion
Estructuras con Punteros
Programación C/C++
jgonzalezo 1 1,803 Último mensaje 13 Abril 2015, 09:02 am
por eferion
Problema con realloc funciones y punteros a estructuras [RESUELTO]
Programación C/C++
Xargam 8 4,405 Último mensaje 3 Junio 2018, 21:36 pm
por Xargam
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines