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.