[C con Clase] Error al compilar una cosa sencilla

Steven Davidson srd4121 en njit.edu
Vie Ago 8 00:17:53 CEST 2008


Hola Rubén,

Rubén wrote:
> Hola a todos,
> 
> Estaba leyendo un curso que me he bajado de internet y decidí que una 
> buena cosa para aprender es escribir el código y ver que hace.
> 

Una buena idea :)

> La cosa está en que al compilarlo me da el error de abajo.
> 

Veamos el código.

> 
> //Saca números en tres formatos
> 
> #include <iostream>
> #include <iomanip>
> 
> int num;
> 
>     cin<<num;
>     cout<<"el numero decimal es: "<<dec<<num<<endl;
>     cout<<"el numero octal es: "<<dec<<oct<<endl;
>     cout<<"el numero decimal es: "<<dec<<hex<<endl;
> 
> 
> /*num.cc:7: error: expected constructor, destructor, or type
> conversion before ‘<<’ token
> num.cc:8: error: expected constructor, destructor, or type conversion
>  before ‘<<’ token
> num.cc:9: error: expected constructor, destructor, or type conversion
>  before ‘<<’ token
> num.cc:10: error: expected constructor, destructor, or type
> conversion before ‘<<’ token */
> 
> Me gustaría saber a que se debe. He mirado las líneas y son las de
> cin y cout, pero no veo el error. ¿Alguien me lo podría explicar?
> 

En primer lugar, necesitas agregar la sentencia:
using namespace std;
antes de usar las entidades en las bibliotecas estándares.

Tienes un error en 'cin'. El operador correcto es >>. Esto es,

cin >> num;

Espero que exista un 'int main()' por ahí que contenga estas sentencias. 
Esto debería ser:

int main()
{
   int num;

   cin >> num;
   cout << "el numero decimal es: " << dec << num << endl;
   ...
}

Por último, las dos últimas sentencias no tienen mucho sentido. Debería 
aparecer:

cout << "el numero octal es: " << oct << num << endl;
cout << "el numero decimal es: " << hex << num << endl;

Quieres mostrar el valor en 'num' según los manipuladores indicados.


Espero que todo esto te ayude.

Steven





Más información sobre la lista de distribución Cconclase