Täällä kun on monia C++ guruja niin voisko joku vaikka kirjoittaa tähän lyhyen oppaan (josta minäkin jotain älyäisin) kun tuolla koodivinkeissä olevat luokka oppaat ovat hieman epäselviä tai toisen älysin mutta pidemmässä meni yli hilseen :|
Jos jälkimmäisellä tarkoitat tuota template-luokkaa dynaamiseen miustinkäsittelyyn, niin sitä nyt ei tarvitsekaan ymmärtää, jos ei ole ohjelmoinut pitkään.
Kannattaa Googlettaa tai lukea täältä:
http://www.mit.jyu.fi/vesal/kurssit/winohj/html/
ok.
nyt kun on vielä tällänen aihe tehty niin mikä vikana tässä koodissa
kun valittaa
two or more data types in declaration of `suomi' two or more data types in declaration of `ruotsi' [Build Error] [main.o] Error 1
#include <iostream> struct VALTIO { int asukasluku; int pinta_ala; } struct VALTIO suomi = {5, 338127}, ruotsi; int main(void) { ruotsi.asukasluku = 8; ruotsi.pinta_ala = 449964; printf("Suomen pinta-ala on %li km² ja asukasluku on %.2f miljoonaa.", suomi.pinta_ala, suomi.asukasluku); printf("\n\n\n\n"); system("PAUSE"); }
sama oli täällä oppaissa.
C:ssä/C++:ssa tulee struct
-määritelmän jälkeen puolipiste. Eli:
struct VALTIO { int asukasluku; int pinta_ala; };
okei. nyt se toimii. olinkin vissiin copypastettanut koodin huolimattomasti.
EDIT: Alotin väsäämään jotain systeemiä. Heittää erroria
C:\Dev-Cpp\lib\libSDLmain.a(SDL_win32_main.o)(.text+0x35a) In function `console_main': [Linker error] undefined reference to `SDL_main' C:\Dev-Cpp\lib\libSDLmain.a(SDL_win32_main.o)(.text+0x35a) ld returned 1 exit status C:\Dev-Cpp\projektit\kumma\Makefile.win [Build Error] [proj.exe] Error 1
#include <iostream> #include <SDL\SDL.h> int main(){ if( SDL_Init(SDL_INIT_VIDEO) < 0 ) // paluuarvon ollessa pienempi kuin 0, tapahtui virhe { fprintf(stderr, "SDL:n alustus ei onnistunut: %s\n", SDL_GetError()); // virheestä tiedot tiedostoon return 0; // lopetetaan ohjelma } SDL_Surface *naytto; naytto = SDL_SetVideoMode(1024, 768, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); int pois; while(pois == true){ SDL_Event tapahtuma; // tapahtumat SDL_PollEvent(&tapahtuma); Uint8* nappi; nappi = SDL_GetKeyState(NULL); if (nappi[SDLK_ESCAPE]){ pois=true; } SDL_WarpMouse(500,600); } SDL_Quit(); return 0; }
mikä vikana
Tämäkin lienee miljoonaan kertaan kysytty kysymys. Lisää linkkeriin -lsdl. Jos on jotakin epäselvää, putkan haku varmasti neuvoo lisää ;)
On jo lisätty
Niin muuten. Miten saan arvotun luvun?
Tuota hakunappulaa saa käyttää sitten ihan mielin määrin. Seuraavanlainen keskustelu löytyi ainakin.
https://www.ohjelmointiputka.net/keskustelu/3589-cpp-win-luvun-arpominen-ja-messagebox
vielä tuo edellinen koodi jossa käytän sitä sdl:n kirjastoja. mika vikana?
linkkeriin -lsdlmain
sekin löytyy
Joissakin tapauksissa linkitysjärjestys voi vaikuttaa asiaan (mm. SDL:n kanssa) => koita vaihtaa -lSDLMain ja -lSDL toisin päin.
eipäs vaikuttanut. heittää vaan enemmän erroria
No kerropa ne eroorit ettei tarttis käyttää sitä kristallipalloa.
tässä
C:\Dev-Cpp\lib\libsdlmain.a(SDL_win32_main.o)(.text+0x34b) In function `console_main': [Linker error] undefined reference to `SDL_SetModuleHandle' [Linker error] undefined reference to `SDL_main' C:\Dev-Cpp\lib\libsdlmain.a(SDL_win32_main.o)(.text+0x34b) ld returned 1 exit status [Build Error] [proj.exe] Error 1
Kokeile määritellä main-funktio näin:
int main(int argc, char *argv[]) { // ... return 0; }
se siinä taisikin olla. thanks
Aihe on jo aika vanha, joten et voi enää vastata siihen.