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
C++
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;
}