Lägga till bibliotek ctime, c++ Gnu

Här diskuteras programmering och utveckling
LinaLj
Inlägg: 9
Blev medlem: 15 sep 2010, 21:17
OS: Annat GNU/Linux
Utgåva: Vet inte/ingen utgåva passar

Lägga till bibliotek ctime, c++ Gnu

Inlägg 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?
Användarvisningsbild
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

Inlägg 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.
-------------------------------------------------------------
Min PPA för Ubuntu: http://launchpad.net/~philip5
Twitter: http://twitter.com/philip_johnsson
IRC: Philip5 @ freenode.net #ubuntu-se #kubuntu-se
Användarvisningsbild
cthulhu
Inlägg: 789
Blev medlem: 05 jan 2009, 14:11
OS: Debian

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

Inlägg av cthulhu »

Tex:

Kod: Markera allt

#include <ctime> 	//för att använda systime som seed
Funkar bra hos mig.
Användarvisningsbild
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

Inlägg 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>
LinaLj
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

Inlägg 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.
Användarvisningsbild
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

Inlägg 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;
}
Skriv svar

Återgå till "Programmering och webbdesign"