qué hay de malo en este codigo en c++?

Iniciado por ralymontes, 15 Abril 2011, 02:10 AM

0 Miembros y 1 Visitante están viendo este tema.

ralymontes

He estado leyendo unos tutoriales, pero por lo que he ehcho las cosas no me quedan claras, agradezco la orientacion y apoyo.

#include <iostream>

using namespace std;
struct datos
{
char modelo[20];
int año;
char marca[20];
};

int main()
{
struct datos auto;
        cout<<"Inserta modelo:\n";
        cin.getline(auto.modelo,25);
        cout<<"Inserta año:\n";
        cin<<auto.año;
        cout<<"Inserta Marca:\n";
        cin.getline(auto.marca,25);

cout<<"Datos Insertados son:\n\n";
        cout<<"Marca:\n";
        cout<<auto.marca;
        cout<<"Modelo:\n";
        cout<<auto.modelo;
return 0;
}


Saludos, Raly.

Shell Root

#1
No se mucho de C++, pero veo algunos errores. La sintaxis para las estructuras es,
Código (cpp) [Seleccionar]
struct [<identificador>] {
  [<tipo> <nombre_objeto>[,<nombre_objeto>,...]];
} [<objeto_estructura>[,<objeto_estructura>,...];


En tú código sería,
Código (cpp) [Seleccionar]
struct datos{
 char modelo[20];
 int ano;
 char marca[20];
} PoC;

Mirad que la variable año, tiene un carácter especial, la Ñ, tiene que ser modificada, la puse con n

Para ingresar el año, creo que debería ser,
Código (cpp) [Seleccionar]
  cin>>PoC.ano;


---

A manera de ejemplo mirad el siguiente ejercicio,
Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

/* ESTRUCTURA */

struct ejemplo{
   char sNombre   [20];
   char sApellido [20];
} PoC;

int main(){
   /* INGRESAR DATOS */
   cout << "Ingresar nombre: ";
   cin.getline( PoC.sNombre, 20, '\n' );

   cout << "Ingresar apellido: ";
   cin.getline( PoC.sApellido, 20, '\n' );

   /* MOSTRAR DATOS */
   cout << "Nombre: " << PoC.sNombre << endl;
   cout << "Apellido: " << PoC.sApellido << endl;

   return 0;
}

Salida:
Código (PoC) [Seleccionar]
alex@shellroot:~/Escritorio$ g++ PoC.cpp
alex@shellroot:~/Escritorio$ ./a.out
Ingresar nombre: alex
Ingresar apellido: root
Nombre: alex
Apellido: root
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Danyel_Casvill

adada