Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Kuollut sovellus

Sivun loppuun

Lanttihame [09.08.2004 15:57:07]

#

Mistäs se johtuu, kun joskus tulee vastaan sellaisia sovelluksia, joita klikatessa hetken jotain tapahtuu, mutta sitten elinvoima jotenkin loppuu ja näyttää kuin sovellukseen ei olisi koskettukkaan.
Kuin tökkisi humalaista kepillä.

Mahdollisesti käyttöjärjesteläni(Win2000) vaikuttaa jotenkin asiaan.

Syy miksi tämä on täällä on se, kun "Dev-C++" -kääntäjää kokeillessani ohjelma, joka kääntyy ja linkittyy ihan kivasti, muuttuu elottomaksi.

Meitsi [09.08.2004 16:19:57]

#

Bugi koodissa?

Metabolix [09.08.2004 17:14:53]

#

Niin, esimerkiksi

while (true) {/*Tyhjä lause*/}

Itselleni tulee aina silloin tällöin jotain, joiden ehto on aina tosi.

Lanttihame [09.08.2004 18:53:16]

#

Ei ainakaan pitäisi olla. Näinkin monimutkainen ei toimi.
Välähtää vain. Ei jää edes latamaan.

#include <stdio.h>

int main(void)
{
  printf("Heipä hei");
  return(0)    ;
}

firebug [09.08.2004 19:13:23]

#

Sovelluksesi vain välähtää, koska se suoritetaan ja heti suljetaan. Lisää vaikka getch() tuonne ennen returnia ja #include <conio.h> alkuun niin toimii.

Lanttihame [09.08.2004 19:32:10]

#

Dev-C++:ssaa käynnistäessä valitaan ensin minkä halutaan tehdä. Olin aina valinnut Windows Applicationin, mutta nyt kokeilin Console App. ja sain toimimaan alla olevalla listauksella. Näemmä konsolina toteutettuna koodi toimii.

Joku siinä WinApplissa nyt tyrii, mutta kiitti teille kumminkin.
Olennaista on, että nyt pääsen kokeilemaan koodeja käytännössä.

#include <stdio.h>
#include <stdlib.h>

int main()
{
  printf("Heipä hei\n");
  system("PAUSE");
  return(0)    ;
}

//Heipä hei
//Paina jotain näppäintä...

hunajavohveli [09.08.2004 22:40:32]

#

System("Pause"):a ei minun tietääkseni pitäisi käyttää, koska se ei kuulemma toimi kaikilla järjestelmillä. Ainakin tällaisen käsityksen väkisinkin saa, jos roikkuu Ohjelmointiputkan IRC-kavanalla. Siellä ja Coodauswebissä System("PAUSE") on oikea vitsi.

Metabolix [09.08.2004 22:46:34]

#

Siirtykää kaikki Windows-ohjelmiin, niin ei tarvitse lisätä mitään :) No kuitenkin, tuo system("Pause"); ei välttämättä ole tosiaan paras keino. Kannattaa laittaa joko cin.get(); tai getch(); Itse teen usein DOS-ohjelmistani looppaavia do .. while (x != 0); -rakenteeseen, mikä on hyvin kätevää mikäli testataan jotakin eri syötteillä.

hunajavohveli [09.08.2004 22:49:29]

#

Minäkin käytän tuota getch():iä, tai oikeastaan omaa pause()-funktiota, joka sisältää sitten:

int pause;
pause = getch();

jotta ei tarvitse kirjoittaa joka funktioon erikseen määrittelyjä pausen tekemistä varten.

Deewiant [10.08.2004 11:34:59]

#

hunajavohveli kirjoitti:

System("Pause"):a ei minun tietääkseni pitäisi käyttää, koska se ei kuulemma toimi kaikilla järjestelmillä. Ainakin tällaisen käsityksen väkisinkin saa, jos roikkuu Ohjelmointiputkan IRC-kavanalla. Siellä ja Coodauswebissä System("PAUSE") on oikea vitsi.

Niin, System() -komennothan ovat pitkälti OS-kohtaisia, ja ovat vielä aika tehottomia (inefficient). Esimerkiksi komento System("Cls") ajaa ensin command.comin, joka ajaa taas cls.exen. Vasta kun nämä kaksi ovat suoriutuneet loppuun asti, ohjelma jatkaa. Aikamoista resurssientuhlausta siis.

Lanttihame [10.08.2004 17:41:16]

#

OK.

"Thanks for the heads up"

...vaikka tuskinpa kukaan tulee mun monimutkaista tulostuspätkääni kyselemään toiselle OS:lle.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta