Sida 1 av 1

Lägga till bibliotek ctime, c++ Gnu

Postat: 23 sep 2010, 18:58
av LinaLj
Hej

Jag har börjat programmera i C++ och har gjort ett program som fungerar perfekt när jag sitter i skolan, där vi kör Unix med gnu kompilator.

Här hemma kör jag på Ubuntu med gnu men får bara upp felmeddelandet att 'srand' inte är deklarerad. Eftersom det funkade bra för två timmar sedan på en annan dator så antar jag att mitt bibliotek inte innehåller ctime vilket är nödvändigt.

Någon som vet hur jag får in ctime i mitt bibliotek?

Re: Lägga till bibliotek ctime, c++ Gnu

Postat: 23 sep 2010, 19:06
av philip5
Beroende på version av gcc så har du definitioner i lite olika headers. Se över dina includes i din kod så du får med den saknade variabeln.

Re: Lägga till bibliotek ctime, c++ Gnu

Postat: 24 sep 2010, 11:31
av cthulhu
Tex:

Kod: Markera allt

#include <ctime> 	//för att använda systime som seed
Funkar bra hos mig.

Re: Lägga till bibliotek ctime, c++ Gnu

Postat: 25 sep 2010, 20:00
av Substrata
void srand(uint) är i POSIX, så du ska hitta funktionen i alla distributioner av Linux.

C

Kod: Markera allt

#include <stdlib.h>
C++

Kod: Markera allt

#include <cstdlib>

Re: Lägga till bibliotek ctime, c++ Gnu

Postat: 13 okt 2010, 11:38
av LinaLj
Om jag tillexempel skriver in den här koden:
# include <iostream>
# include <ctime>
using namespace std;

main (){

srand(time (0));

int random;
char symbol;

random = rand()%3+1;

if (random == 1){

symbol = 'O';
}

else if (random == 2){

symbol = 'X';
}

else{

symbol = '%';
}
cout<< symbol;

return 0
}
och försöker kompilera så får jag felmeddelande: ‘srand’ was not declared in this scope

och

‘rand’ was not declared in this scope

Men samma kod i skolans datorer, som använder samma kompilator, fungerar utan problem.

Re: Lägga till bibliotek ctime, c++ Gnu

Postat: 14 okt 2010, 04:29
av Substrata
Du behöver importera cstdlib. Se mitt föregående inlägg. Jag har provkört din kod och med förändringen kompilerar det utan problem.

Så här (efter förenkling):

Kod: Markera allt

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
  srand(time(0));

  char T[] = {'O', 'X', '%'};
  char symbol = T[rand() % sizeof T];

  cout << symbol;
  
  return 0;
}