Avatar billede palle_pirat Nybegynder
06. marts 2009 - 04:53 Der er 1 kommentar og
1 løsning

Formatering

Hej
Jeg sidder og følger en bog omhandlende c++, og i bogen skriver han:

#include <iostream.h>

int main()
{
    int vaerdi = 15;
    cout << dec << vaerdi << '\t' << oct << vaerdi << '\t'
    << hex << vaerdi;
    cout << '\n';
    return 0;
}

Men når jeg prøver at kompilere koden får jeg fejl på 'dec', 'oct' og 'hex'. Hvad er problemet?

Jeg bruger Dev-C++ 4.9.9.2 som kompiler og editor.
Bogen er rimelig gammel, hvis det kan ha' noget at sige.
På forhånd tak.
Avatar billede nilshendriksen Nybegynder
06. marts 2009 - 11:21 #1
Det meget korte svar er, at der mangler en #include <iomanip.h>.

Det lidt længere svar:
Ja, bogen lader til at være temmelig gammel; namespaces lader til at være et ukendt begreb.  En mere moderne udgave kunne lyde:

#include <iostream>
#include <iomanip>

int main ()
{
  const char sep = '\t' ;
    // lettere end at skrive '\t' hvergang
    // - og lettere, hvis du vil ændre
    // separatortegnet en dag
  int val = 15 ;
  std::cout
  << std::dec << val
  << sep << std::oct << val
  << sep << std::hex << val
  << std::endl ;
}

Forskellen på #include <iostream> og #include <iostream.h> er, at iostream.h lægger standardbibliotekets funktioner ud i global namespace, af hensyn til gamle programmer, der ikke kender namespaces. En #include <iostream> bibeholder funktionerne i namespace std.

I stedet for at skrive std::cout, std::dec etc, hver gang, du vil bruge en funktion fra standardbiblioteket kan du åbne hele std namespace:

#include <iostream>
#include <iomanip>

using namespace std ;

int main ()
{
  const char sep = '\t' ;
  int val = 15 ;
  cout << dec << val << sep << oct << val << sep << hex << val << endl ;
}

Eller specificere namespace for hvert enkelt eksternt navn, du anvender i din funktion:

#include <iostream>
#include <iomanip>

int main ()
{
  using std::cout ;
  using std::dec ;
  using std::oct ;
  using std::hex ;
  using std::endl ;

  const char sep = '\t' ;
  int val = 15 ;
  cout << dec << val  << sep << oct << val << sep << hex << val << endl ;
}
Avatar billede palle_pirat Nybegynder
07. april 2009 - 03:29 #2
Sorry at jeg først kommer med point nu.
Tak for svar!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester