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?
Lägga till bibliotek ctime, c++ Gnu
- philip5
- HC-IRCare
- Inlägg: 1099
- Blev medlem: 21 feb 2009, 14:32
- OS: Kubuntu
- Utgåva: 23.10 Mantic Minotaur
- Ort: Uppsala
- Kontakt:
Re: Lägga till bibliotek ctime, c++ Gnu
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.
-------------------------------------------------------------
Min PPA för Ubuntu: http://launchpad.net/~philip5
Twitter: http://twitter.com/philip_johnsson
IRC: Philip5 @ freenode.net #ubuntu-se #kubuntu-se
Min PPA för Ubuntu: http://launchpad.net/~philip5
Twitter: http://twitter.com/philip_johnsson
IRC: Philip5 @ freenode.net #ubuntu-se #kubuntu-se
Re: Lägga till bibliotek ctime, c++ Gnu
Tex:
Funkar bra hos mig.
Kod: Markera allt
#include <ctime> //för att använda systime som seed
- Substrata
- Inlägg: 71
- Blev medlem: 13 apr 2010, 11:01
- OS: Arch Linux
- Utgåva: Vet inte/ingen utgåva passar
Re: Lägga till bibliotek ctime, c++ Gnu
void srand(uint) är i POSIX, så du ska hitta funktionen i alla distributioner av Linux.
C
C++
C
Kod: Markera allt
#include <stdlib.h>
Kod: Markera allt
#include <cstdlib>
-
- Inlägg: 9
- Blev medlem: 15 sep 2010, 21:17
- OS: Annat GNU/Linux
- Utgåva: Vet inte/ingen utgåva passar
Re: Lägga till bibliotek ctime, c++ Gnu
Om jag tillexempel skriver in den här koden:
och
‘rand’ was not declared in this scope
Men samma kod i skolans datorer, som använder samma kompilator, fungerar utan problem.
och försöker kompilera så får jag felmeddelande: ‘srand’ was not declared in this scope# 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
‘rand’ was not declared in this scope
Men samma kod i skolans datorer, som använder samma kompilator, fungerar utan problem.
- Substrata
- Inlägg: 71
- Blev medlem: 13 apr 2010, 11:01
- OS: Arch Linux
- Utgåva: Vet inte/ingen utgåva passar
Re: Lägga till bibliotek ctime, c++ Gnu
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):
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;
}