Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/10/2014, 03:35
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: ¿Cómo fijar un dato de una estructura a la hora de introducirlo?

Si lo que quieres es crear varios componentes repetidos puedes optar por varias opciones:

1. Usar constructor copia

Código C++:
Ver original
  1. struct Test
  2. {
  3.   int valor;
  4.  
  5.   Test( )
  6.     : valor( 0 )
  7.   { }
  8.  
  9.   // Constructor copia
  10.   Test( const Test& otro )
  11.     : valor( otro.valor )
  12.   { }
  13. }
  14.  
  15. int main( )
  16. {
  17.   Test test;
  18.  
  19.   // Imprime '0'
  20.   std::cout << test.valor << std::endl;
  21.  
  22.   test.valor = 21;
  23.  
  24.   // Llamamos al constructor copia
  25.   Test test2( test );
  26.  
  27.   // Imprime '1'
  28.   std::cout << test2.valor << std::endl;
  29.  
  30.   // También funciona, como era de esperar, dentro de bucles:
  31.   for ( int i=0; i < 10; i++ )
  32.   {
  33.     Test temp( test );
  34.     std::cout << test.valor << std::endl;
  35.   }
  36. }

2. Guarda los valores que quieres repetir en variables...

Código C++:
Ver original
  1. struct Test
  2. {
  3.   int valor;
  4.  
  5.   Test( )
  6.     : valor( 0 )
  7.   { }
  8. };
  9.  
  10. int main( )
  11. {
  12.   int valor = 0;
  13.  
  14.   for ( int i=0; i < 10; i++ )
  15.   {
  16.     Test test;
  17.     test.valor = valor;
  18.  
  19.     std::cout << test.valor << std::endl;
  20.     std::cout << "Quieres reutilizar el ultimo valor? ";
  21.     char respuesta;
  22.     std::cin >> respuesta;
  23.  
  24.     if ( respuesta == 'n' )
  25.     {
  26.       std::cout << "Introduce el nuevo valor: ";
  27.       std::cin >> valor;
  28.     }
  29.   }
  30. }