Avatar billede muddi Praktikant
07. februar 2004 - 15:19 Der er 8 kommentarer og
1 løsning

Hvorfor rand() og ikke std::rand()

Jeg har sat mig for at lære C++, og derfor har jeg købt mig en tyk bog om emnet. Bogen gennemgår en masse eksempler, som jeg så prøver at kompilere. Med bogen fulgte en compiler (Quincy 99), men da jeg i forvejen havde Microsoft Visual C++ har jeg i stedet valgt at bruge denne. Derfor tror jeg nok at kodeeksemplerne i bogen virker - hvis jeg ellers brugte den anden compiler.

Mit spørgsmål er, hvorfor kan jeg ikke bruge funktionerne std::rand() og funktionen std::srand()?

Compileren giver følgende fejl når jeg prøver:
error C2039: 'rand' : is not a member of 'std'

Hvis jeg så ændrer std::rand() til rand(), og std::srand() til srand(), så forløber kompileringen fejlfrit!

Er der nogen der har et bud på hvorfor jeg ikke kan bruge funktionen som den står i bogen (og i uhyre mange tutorials på nettet). Og er der muligvis andre funktioner der ikke findes i standard C biblioteket?

Mvh Morten
Avatar billede bertelbrander Novice
07. februar 2004 - 17:12 #1
MS VC++ (Version 6) er vist ikke helt opdateret med hensyn til C++ standarden.
Avatar billede muddi Praktikant
07. februar 2004 - 18:51 #2
Er Borland C++ Builder bedre (læs: helt opdateret med hensyn til C++ standarden)?
Avatar billede bertelbrander Novice
07. februar 2004 - 20:23 #3
Det skulle jeg mene, dette lille eksempel kompilerer uden problemer med Borland Builder og gcc (cygwin), mens MS VC++ netop siger:
r.cpp(10) : error C2039: 'rand' : is not a member of 'std'

#include <iostream>
#include <cstdlib>

int main(void)
{
  int i;
  for(i = 0; i < 10; i++)
  {
    std::cout << std::rand() << std::endl;
  }
  return 0;
}
Avatar billede jpk Nybegynder
10. februar 2004 - 08:41 #4
VC++ 7 kan udmærket kompilere eksemplet...
Avatar billede muddi Praktikant
10. februar 2004 - 08:49 #5
Damn, så er der bare min compiler der er noget gammel hø! *G*

bertelbrander og jpk >> hvis i smider et svar hver, så skal jeg give point. Nu gider jeg ikke bruge mere tid på det. Jeg må se om jeg kan få en billig compiler gennem en eller anden studerende :P
Avatar billede jpk Nybegynder
10. februar 2004 - 08:53 #6
Hvis du er studerende, kan du få Visual Studio .NET Pro 2003, til kr. 895,-

http://www.proconsult.dk/katalog/m_soft/s_soft-a/soft-a60/softms-study25.html
Avatar billede muddi Praktikant
10. februar 2004 - 08:56 #7
Og hvad indeholder det? Hvor meget får man med der?
Avatar billede muddi Praktikant
10. februar 2004 - 08:58 #8
Nå fedt, der står at det er til forældre med hjemmeboende skolebørn... godt at have små søskende :) Og tilmed en mor der er lærer *G*
Så er det jo bare om at komme i banken *LOL*
Avatar billede muddi Praktikant
20. februar 2004 - 12:27 #9
Jamen så lukker vi... tak for hjælpen!

/Morten
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