C++ -kysymykset

Muu yhteisön välinen keskustelu.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: C++ -kysymykset

Post by koodaaja »

cheeshelmet.jr wrote:kuinka voin kääntää koodin esim dll:ksi
Kjöh, esim.? Dllien kääntämisestä en tiedä paljoa, mutta veikkaisin, ettet tiedä paljoa mitään C++:sta. Dlliksi ei vain käännetä, vaan se vaikuttaa suuresti koko koodin rakenteeseen. Maini korvataan dll-mainilla yms. kikkailua. Opettele ensin tekemään ihan perussysteemejä ja jätä dllt pr00mmille kavereille. Ei pahalla, itsekin haluaisin osata moisia kirjoittaa.
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

koodaaja wrote:Kjöh, esim.? Dllien kääntämisestä en tiedä paljoa, mutta veikkaisin, ettet tiedä paljoa mitään C++:sta. Dlliksi ei vain käännetä, vaan se vaikuttaa suuresti koko koodin rakenteeseen. Maini korvataan dll-mainilla yms. kikkailua. Opettele ensin tekemään ihan perussysteemejä ja jätä dllt pr00mmille kavereille. Ei pahalla, itsekin haluaisin osata moisia kirjoittaa.
Jos et kerta tiedä dynaamisten kirjastojen luonnista mitään, äläpä sitten koodaaja kommentoi. Toisen taitojen mollaaminen ilman sen kummempaa tietämystä ei varmasti auta ketään. DLL:ien kirjoittaminen ei vaadi minkään sortin pr00maisuutta, pelkästään tiedon siitä minkälaisen rajapinnan dll-koodi pitää toteuttaa ja minkälaisilla asetuksilla projekti pitää kääntää.

On totta että dll:t ovat edistyneempi ominaisuus ohjelmassa, sillä yleensä C++-ohjelma ei tarvitse dynaamisesti ladattavia / jaettavia kirjastoja laisinkaan. Dynaamisia kirjastoja tarvitaan lähinnä jos ohjelman toiminnallisuutta pitää pystyä päivittämään tai laajentamaan, tai jos usea ohjelma jakaa yhteisiä kirjastoja. Yleensä riittää staattisen kirjaston käyttö, tai suoraan lähdekoodin kääntäminen ihan perinteisesti.
OoO
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: C++ -kysymykset

Post by JATothrim »

Hmh. "kokeeksi" väsäämäni Stack-luokka ei pelaa ihan oikein, selityksiä ?
Arvot tallentuvat pinoon oikein, ja systeemi pelaa muutenkin ( luultavasti ) vakaasti, MUTTA for..next (loopeissa) rakenteessa käytettyä muuttujaa ei voi käyttää pinossa, joko arvot ovat päinprinkkalaa tai homma kaatuu. WHY !?!

Code: Select all

#include <iostream>
using namespace std;

template <class T>
class SKnot{
    public:
            SKnot(){next=0;}
            SKnot(const T dat){
                pData=&dat;
                next=0;
            }

            void SetData(const T dat){
                pData=&dat;
            }
            const T& GetData(){
                return *pData;
            }
            void SetNext(SKnot<T>* nxt){
                next=nxt;
            }
            SKnot<T>* GetNext(){
                return next;
            }

    private:
        const T* pData;
        SKnot<T>* next;
};

template<class T>
class Stack{
	public:
		Stack(){
			Items=0;
			current=0;
		}
		void Push(const T& dat){
			if(current==0){
				current=new SKnot<T>(dat);
			}else{
				SKnot<T>* tmp=new SKnot<T>(dat);
				tmp->SetNext(current);
				current=tmp;
			}
		}
		void Pop(){
			if(current==0) return;
			if(current->GetNext()==0){
				delete current;
				current=0;
			}else{
				SKnot<T>* tmp=current->GetNext();
				delete current;
				current=tmp;
			}
		}
		const T& Top(){
			return current->GetData();
		}
	private:
		int Items;
		SKnot<T>* current;
};

int main(){
	Stack<int> s;
	int a=1;
	s.Push(a);a++;
	s.Push(a);a++;
	s.Push(a);a++;
	s.Push(a);a++;
	s.Push(a);a++;
            //EI TOIMI !?! , kun ylemi lisäys koodi on pois.
            /*int a=1;
	for(int i=0; i<5;i++)
		s.Push(a);a++;
            */
	for(int i=0; i<5; i++){
		cout<<s.Top()<<endl;
		s.Pop();
	}

	return 0;
}
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Dark Code wrote:Hmh. "kokeeksi" väsäämäni Stack-luokka ei pelaa ihan oikein, selityksiä ?
Arvot tallentuvat pinoon oikein, ja systeemi pelaa muutenkin ( luultavasti ) vakaasti, MUTTA for..next (loopeissa) rakenteessa käytettyä muuttujaa ei voi käyttää pinossa, joko arvot ovat päinprinkkalaa tai homma kaatuu. WHY !?!
Ongelmasi oli ilmeisesti tuo for-lause? Siinä virhe oli huono sisennys, ja sen aiheuttama suljelohkon puuttuminen. Pieni selvennys:

Code: Select all

//Alkuperäinen koodisi:
int a=1;
for(int i=0; i<5;i++)
    s.Push(a);a++;

//On täsmälleen sama asia kuin seuraava:
int a=1;
for(int i=0; i<5;i++)
{
    s.Push(a);
}
a++; //a:ta kasvatetaan siis väärässä paikassa!

//Olit ajatellut asian ilmeisesti näin:
int a=1;
for(int i=0; i<5;i++)
{
    s.Push(a);
    a++; //Oikea paikka kasvattaa a:ta

    //Myös tämä ajaa saman asian, mutten suosittele selvyyden vuoksi (käännetty koodi on aivan samanlaista molemmissa)
    //s.Push(a++);
}
Itsellä tuo esimerkki ei toiminu ollenkaan oikein (käytössä microsoftin kääntäjä), vaan kaikiksi luvuiksi tuli muistiosoite (niinkuin koodista katsomalla pitikin). Virhe oli tuossa SKnot (oikea termi on muuten Node), siellä dataksi tulee muistiosoite eikä itse dataa. Tässä muokattu koodi jossa olen muuttanut solmun datan arvotyyppiseksi (siihen voidaan silti pistää osoite kun stackin tyypiksi annetaan osoitetyyppi), muuttanut tietyt nollat NULLiksi (parantaa luettavuutta) sekä korjattu for ja testi että monen tyyppinen data toimii:

Code: Select all

#include <iostream>
#include <string>
using namespace std;

template <class T>
class SKnot
{
public:
	SKnot()
		: pData(0),
		next(NULL)
	{
	}

	SKnot(const T& dat) //Muutettu viittaukseksi, koska muuallakin on viittausta käytetty
		:pData(dat),  //jäsenmuuttujat alustetaan tehokkaimmin tässä
		next(NULL)
	{
	}

	void SetData(const T& dat)
	{
		pData = dat;
	}

	const T& GetData()
	{
		return pData;
	}

	void SetNext(SKnot<T>* nxt)
	{
		next = nxt;
	}

	SKnot<T>* GetNext()
	{
		return next;
	}

private:
	const T pData; //arvotyyppi, voi sisältää myös osoitteen
	SKnot<T>* next;
};

template<class T>
class Stack
{
public:
	Stack()
		:Items(0),
		current(NULL)
	{
	}

	~Stack() //Muista vapauttaa muisti, en nyt jaksa ajatella että pitääkö tehdä vielä jotain muutakin lisäksi...
	{
		int count = Items;
		for(int i=0; i<count; i++)
		{
			Pop();
		}
	}

	void Push(const T& dat)
	{
		if(current == NULL)
		{
			current = new SKnot<T>(dat);
		}
		else
		{
			SKnot<T>* tmp = new SKnot<T>(dat);
			tmp->SetNext(current);
			current = tmp;
		}

		Items++;  //kasvatetaan laskuria
	}

	void Pop()
	{
		if(current == NULL)
			return;

		if(current->GetNext() == NULL)
		{
			delete current;
			current = NULL;
		}
		else
		{
			SKnot<T>* tmp = current->GetNext();
			delete current;
			current = tmp;
		}

		Items--;
	}

	const T& Top()
	{
		return current->GetData();
	}

private:
	int Items;
	SKnot<T>* current;
};

int main(){

	//Regular integers
	Stack<int> s;

	int a=1;
	for(int i = 0; i < 5; i++)
	{
		s.Push(a);
		a++; //Nyt a:ta kasvatetaan jokaisella iteraatiolla, ennen kasvatus tapahtui luupin jälkeen
	}
	
	for(int i = 0; i < 5; i++)
	{
		cout<<s.Top()<<endl;
		s.Pop();
	}

	//Integer pointers
	int theInt = 666;
	int theSecondInt=667;

	Stack<int*> ints;
	ints.Push(&theInt);
	ints.Push(&theSecondInt);

	for(int i = 0; i < 2; i++)
	{
		cout<<*ints.Top()<<endl;
		ints.Pop();
	}

	//Strings
	Stack<string> strings;
	strings.Push("First");
	strings.Push("Second");
	strings.Push("Third");
	strings.Push("Fourth");

	for(int i = 0; i < 4; i++)
	{
		cout<<strings.Top()<<endl;
		strings.Pop();
	}

	return 0;
}
Lisäksi pari yleistä kommenttia, toivottavasti et pahastu ;) Tunnisteiden nimeämisessä kannattaa olla jo alusta asti johdonmukainen. Käytä samanlaista nimeämistä joka paikassa. Lisäksi nykyisillä työkaluilla työskenneltäessä hieman pidempiä nimiä ei kannata pelätä, koodin väritys pelastaa jo tässä. Liiallinen lyhentäminen on pahasta, esimerkiksi on aivan sama kirjoitatko next vai nxt. Tai data vai dat. Tai ei siis aivan sama, koska lyhennys on täysin turha ja tekee koodista vain epäselvempää. Lyhetäminen on pahasta myös ohjelmalogiikassa; käytä aina lohkosulkeita jokaisessa silmukassa, riippumatta silmukan sisällöstä. Lisäksi jokaisessa iffissä yms. sellaisessa sulkeet on hyvä olla. Kirjoita aina vain yksi lauseke riville. Kääntäjää ei kiinnosta kuinka tiiviiksi koodi on kirjoitettu, mutta koodin lukijaa se kiinnostaa sitäkin enemmän mutta käänteisesti. Lisäksi turhat optimointikikkailut kannattaa jättää ensisijaisesti kääntäjän huoleksi. Kääntäjä yleensä osaa samat kikat kuin koodaajakin ;) Lisäksi java-tyylisiä sisennyksiä ei katsota C++-koodissa hyvällä ;) Mutta ei kai siinä.
OoO
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: C++ -kysymykset

Post by JATothrim »

Kiitos, Teit näkökään vähän enemmän kuin odotin. :D Ja luokkahan oli kesken tekoinen, tuhoajan olin aikonut tehdä, jne. näköjään otin myös "huonomman" version tuosta SKnot luokasta. ja tuo osoitin homma näky olevan ihaoikia virhe. :( NULL:ista en tiedä, muutakuin että se on "nolla" ja luin että osoittimet kannattaa (pitää) alustaa siksi eli nolla arvoiseksi osittimeksi. Kenties se "ainoa" suomenkielinen opas on syynä tähän. otin siitä paljon mallia tuon tekemiseen.
Virheistä oppii. 8-)
PS. Luokkahan näytti toimivalta, rääkkäsit onnistuneita toimintoja kunnolla.. :P
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Dark Code wrote: NULL:ista en tiedä, muutakuin että se on "nolla" ja luin että osoittimet kannattaa (pitää) alustaa siksi eli nolla arvoiseksi osittimeksi.
Joo 0 ja NULL on periaatteessa ihan sama asia, mutta NULL osoittaa selkeästi (lukijalle) että kyseessä on nimenomaan osoitin, eikä lukuarvo. Luulisin että NULL on se suositus mitä pitäisi käyttää, ihan selkeyden takia.
OoO
Rufi
Member
Posts: 50
Joined: Fri Dec 21, 2007 11:12 am

Re: C++ -kysymykset

Post by Rufi »

Hoo pakko nostaa tämä melkein kuukauden aihe...
Satuinpa asentamaan Microsoftin Visual C++ 2008 ja törmään ajaessani ongelmaan : "unable to start program: 'polku\projects\test\debug\test.exe" - Määritettyä tiedostoa ei löydy.

Noh eikös tällä ole jotain tekemistä polun kanssa? Katsoin muutamaan kertaan (tosin auttaisi mitä pitäisi katsoa) project propertiesii ja sieltä niitä polkuja D: Oikein pitäisi olla.

Nooh apu ei olisi pahitteeksi :oops:

Ainiin... Tätä ennen oli ongelma että se kummallinen .manifest tiedosto oli määriteltynä "nimi.intermediate.manifest" ja vaihdoin "nimi.embed.manifest", koska se tiedosto oli juuri noin ja sitä se valitti. Jos tällä nyt mitää osaa olisi.

EDIT: Niin ja sitten, että olisiko tälläisellä kaukaa haetulla "ongelmalla" mitään vaikutusta, koska avaessani esim. HTML tiedoston niin se valittaa ettei sitä polkua löydy ja sitten se avaa sen kuitenkin...

:oops:
I'm gonna be the Pira... CoolBasic King!
D. Adams wrote:The knack of flying is learning how to throw yourself at the ground and miss.
Exu
Newcomer
Posts: 26
Joined: Wed Feb 27, 2008 3:51 pm

Re: C++ -kysymykset

Post by Exu »

Rufi wrote:Hoo pakko nostaa tämä melkein kuukauden aihe...
Satuinpa asentamaan Microsoftin Visual C++ 2008 ja törmään ajaessani ongelmaan : "unable to start program: 'polku\projects\test\debug\test.exe" - Määritettyä tiedostoa ei löydy.
Minulla on tämä sama ongelma. En pysty testaamaan mitään ohjelmaa (tekstin tulostusta :D) kun se valitta tuota.

01000101
01111000
01110101
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Rufi wrote:Hoo pakko nostaa tämä melkein kuukauden aihe...
Satuinpa asentamaan Microsoftin Visual C++ 2008 ja törmään ajaessani ongelmaan : "unable to start program: 'polku\projects\test\debug\test.exe" - Määritettyä tiedostoa ei löydy.

Noh eikös tällä ole jotain tekemistä polun kanssa? Katsoin muutamaan kertaan (tosin auttaisi mitä pitäisi katsoa) project propertiesii ja sieltä niitä polkuja D: Oikein pitäisi olla.
Onko tuo polku sanasta sanaan noin? Eihän tuommoista tiedostoa takuulla löydy kun ei ole edes aseman tunnusta edessä. Tuliko tuo ongelma puhtaan asennuksen jälkeen? Mikä projektityyppi? Ihmeellistä miten itsellä nämä toimii niin hyvin nämä Visualit ;)
EDIT: Niin ja sitten, että olisiko tälläisellä kaukaa haetulla "ongelmalla" mitään vaikutusta, koska avaessani esim. HTML tiedoston niin se valittaa ettei sitä polkua löydy ja sitten se avaa sen kuitenkin...
katsopa olisiko tästä apua: http://kb.mozillazine.org/Windows_error ... _-_Firefox
OoO
Rufi
Member
Posts: 50
Joined: Fri Dec 21, 2007 11:12 am

Re: C++ -kysymykset

Post by Rufi »

Nooh tuo "polku" merkitsee siis sitä pitkää jonoa tuonne projekti kansioon koska en jaksanut kirjoittaa :D Puhdas asennus kyllä. Projekti tyyppinä oli Win32 Console Application. Laitoin sitten "Empty Project" ja Console Application settingeistä kun kerta kysyttiin. Kokeilin myös Windows Application muttei toiminu sen paremmin. Ihmetyttää suuresti, että miksi settingeissä on tiedosto.exe.intermediate.manifest ja tiedosto joka tulee sitten projektin kansioon on tiedosto.exe.embed.manifest. Tuota se siis juuri luullakseni tietääkseni olettaakseni valittaa... Sitten vaihdan sen, niin se näyttää että Buildi succeeded muttei se osaa avata .exee ...... :oops:

Ennen:

Code: Select all

1>Embedding manifest...
1>.\Debug\roflcopter.exe.intermediate.manifest : general error c1010070: Failed to load and parse the manifest. Mddritettyd tiedostoa ei lvydy.
Jälkeen:

Code: Select all

1>roflcopter - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Ja sitten valittaa ettei löydy :DD On tää kyl niin noloo................................................................................................
Ennen pelas 2005, mutta uuden koneen jälkeen en enää C++ niin harjoitellut ja en asentanut uudestaan. Käyttöjärjestelmä tässä on Vista, jonka ei pitäisi vaikuttaa, koska eikö 2008 juuri tehty Vistaa varten?

No omg toi esimerkkiohjelma toimii kuitenkin...
I'm gonna be the Pira... CoolBasic King!
D. Adams wrote:The knack of flying is learning how to throw yourself at the ground and miss.
jannepelaa
Active Member
Posts: 101
Joined: Tue Aug 28, 2007 2:27 pm

Re: C++ -kysymykset

Post by jannepelaa »

Muistaakseni noiden manifestien ja exe-tiedostojen poisto Debug-kansiosta auttaa. En ole tosin aivan varma.
User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: C++ -kysymykset

Post by vilQuri »

Törmäsin tässä sellaiseen probleemaan että kääntäjä valittaa

Code: Select all

C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\libmingw32.a(main.o):main.c:(.text+0x104)||undefined reference to `_WinMain@16'||
|=== Build finished: 1 errors, 0 warnings ===|
<-- Debuggeri ei sano mitään ei näy rivinumeroa, tämä tapahtuu jos includettaan SDl.h ja sen lib tiedostot(SDLmain.lib ja SDL.lib) Nämä kaikki includet olen itse siirtänyt include kansiioon muut tiedostot ovat siellä myös, mikähän on vikana. Olen tekemässä irrlicht projektia joten en tiedä näitten kahden rinnakkaiselosta :| :?:
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: C++ -kysymykset

Post by koodaaja »

Käyttäessäni aikanani Dev-Cpp:tä tuota sattui silloin tällöin, vika löytyi ainakin silloin linkattujen kirjastojen puutteesta. Ja WinMainin määrittely liittyi ongelmaan, en nyt tarkasti muista.
User avatar
Sami The Great
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 4:15 pm
Contact:

Re: C++ -kysymykset

Post by Sami The Great »

Koodailin tässä pientä server engineä rakNetin avulla onglemaksi tuli ihan ihme juttu. Nimittäin string:in kanssa, jos asetan koodissani jonkun muuttujan string tyyppiseksi niin koodi ei käänny, vaikka ennen kun olen stringejä käyttänyt ne toimivat ihan hyvin.

Code: Select all

using namespace irr;
using namespace io;
using namespace core;
using namespace gui;
using namespace video;
using namespace scene;
using namespace std;


int main()
{
    string command;
    IrrlichtDevice *device = createDevice(EDT_NULL,dimension2d<s32>(640,480));
    if(device == 0)
    {
        cout << "cannot create device" << endl;
        system("pause");
        return 1;
    }
    system("CLS");
    cout << "------------------" << endl << "-SERVER ENGINE 0.1-" << endl << "------------------" << endl << endl;
    cout << "Type: /help to get more information." << endl;
    
    while(device->run())
{
    
        
}
   device->drop(); 
    return 0;
}
eli onglema on tuossa string command; rivillä
vielä kaiken kukkuraksi vaikka olen määritellyt std nimi avaruuden kayttöön se ei toimi tuon stringin kanssa vaikak ennen se on toimut... jos laitan std::string command; niin toimii. Kumma juttu vain, että esim. cout toimii ihan sellaisenaan koska tuo nimi avaruus on määritelty käytettäväksi. Eli coutit toimii ilman, että kirjoittaa näin: std::cout << "moi";
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: C++ -kysymykset

Post by Dibalo »

Irrlicht käyttää omia merkkijonoja (irr::string muistaakseni), joten koska käytät kumpaakin nimiavaruutta, kääntäjä ei osaa päättää, haluatko käyttää irr:string vai std::string.
The darkest spells can be found from
http://tunkkaus.blogspot.fi
Rufi
Member
Posts: 50
Joined: Fri Dec 21, 2007 11:12 am

Re: C++ -kysymykset

Post by Rufi »

Yyh pakko viel "huomauttaa", että oma ongelmani ei ole ratkennut :oops: On tää kyl ihmeellistä x_x En nyt haluaisi oikein quotella, mutta jos joku viitsisi niin katsastaisi tuolta ylemmältä noi minun 2 muuta viestiä...... Omg. :roll:

Lol oonko säälittävä, vai? =D
I'm gonna be the Pira... CoolBasic King!
D. Adams wrote:The knack of flying is learning how to throw yourself at the ground and miss.
User avatar
Sami The Great
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 4:15 pm
Contact:

Re: C++ -kysymykset

Post by Sami The Great »

Sainpahan sen toimimaan kun otin pois käytöstä tuon std nimi avaruuden käytön ja lisäsin jokaiselle sitä käyttävälle riville std::
Tässä samalla kysäisen, että kun minulla on kaksi(2) oliota toisen nimi on server ja toisen inputConsole.
server olio sisältää tietoja serveristä esim. playerLimit jne. inputConsole taas hoitaa serverin "komentamisen", tämä olio siis hoitaa inputin ja hoitaa komentoja riippuen inputista esim. /setplayerlimit säätää playerLimittiä. Nyt kun minulla on inputConsole oliossa metodi jonka pitäisi tulostaa serverin kaikki tiedot niin ongelma on, että en pääse käsiksi niihin ilman purkka virityksiä main funktion kautta. Niin miten saisin toteutettua systeemin niin, että inputConsole olion metodi showServerStatus() saisi luettua tiedot suoraan server oliolta?
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
nevssons
Devoted Member
Posts: 503
Joined: Sun Jan 13, 2008 5:02 pm

Re: C++ -kysymykset

Post by nevssons »

Latasin justiinsa C++:san enkä pääse ajamaan ohjelmia! mitä piitäis tehdä?
User avatar
Sami The Great
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 4:15 pm
Contact:

Re: C++ -kysymykset

Post by Sami The Great »

Mikä kääntäjä sulla on? Jos on Dev-Cpp niin aloita vain uusi projekti ja ota se empty project. Ja muistithan includea tarvittavat kirjastot?

Ja jos olet katsonut sitä hassun hauskaa C++ opasta niin siinä ne alkupuolen esimerkit eivät toimi koska main funktio on määritelty: void main(), vaikka sen pitäisi olla int main()

kokeile ajaa:

Code: Select all

#include <iostream> //tulostukseen jä syöttöön tarvittavat asiat
#include <string>
using namespace std;

int main()
{
string nimi;
cout << "Anna nimi: " << endl;
cin >> nimi;
cout << nimi;
system("pause");
return 0;
}

EDIT: Jos tuo ei toimi, niin mistä kääntäjä valittaa? (Dev-Cpp:eessä näet virheet sieltä alhaalla olevasta boxista.)
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
nevssons
Devoted Member
Posts: 503
Joined: Sun Jan 13, 2008 5:02 pm

Re: C++ -kysymykset

Post by nevssons »

Sami The Great wrote:Mikä kääntäjä sulla on? Jos on Dev-Cpp niin aloita vain uusi projekti ja ota se empty project. Ja muistithan includea tarvittavat kirjastot?

Ja jos olet katsonut sitä hassun hauskaa C++ opasta niin siinä ne alkupuolen esimerkit eivät toimi koska main funktio on määritelty: void main(), vaikka sen pitäisi olla int main()

kokeile ajaa:

Code: Select all

#include <iostream> //tulostukseen jä syöttöön tarvittavat asiat
#include <string>
using namespace std;

int main()
{
string nimi;
cout << "Anna nimi: " << endl;
cin >> nimi;
cout << nimi;
system("pause");
return 0;
}

EDIT: Jos tuo ei toimi, niin mistä kääntäjä valittaa? (Dev-Cpp:eessä näet virheet sieltä alhaalla olevasta boxista.)
Ei toimi!
Ajaessa:Sourcefille not complied
Suorittaessa: The system cannot find the file specified
Koodarina kohtalainen, henkilönä vittumainen
Image
Post Reply