Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++, rivinvaihto tekstitilassa

Sivun loppuun

Jartsala [08.03.2007 16:39:38]

#

Mikä hiivatti se oli se merkki jolla saikaan rivin vaihdon aikaan?

sooda [08.03.2007 17:03:02]

#

\n, windowsissa vissiin \r\n. C++:ssa std::endl.

Jartsala [08.03.2007 17:06:17]

#

juu \n tuli mieleen äskön, sitte toinen kysymys...
Oon tehnyt laskimen joka kysyy myös laskutoimitusta - tai +
miten saan sillein että jos kirjotan - ni se miinustaa jos + se plussaa kaksi integeriä tässä koodini

cout << "\nAnna luku: ";
cin >> i;
cout << "Anna toinen luku: ";
cin >> u;
cout << "Laita lasku toimitus +, -, / tai * ";
cin >> e;
    e = '+';
   {
    o = i + u;
    }
    e = '-';
   {
    o = i - u;
    }
   	cout << "Tulos on " << o ;

------------
eli tässä selitykset integereille
e = lasku toimitus
o = tulos
i = eka numero
u = toka numero

(Mod. Edit. Kooditagit, ole hyvä.)

Blaze [08.03.2007 17:42:40]

#

Vertailemalla käyttäjän antamaa merkkiä vaihtoehtoihin, ja tekemällä asioita sen mukaan.

string laskutoimitus;
cin >> laskutoimitus;
if(laskutoimitus == "+") {
  tulos = eka + toka;
} else if(laskutoimitus == "-") {
  tulos = eka - toka;
} else {
  cout << "lol, anna kunnollinen merkki";
}

moptim [08.03.2007 17:55:02]

#

> Blaze

Eikö tuo toimisi myös char-tyypillä? Jos käyttäjä saa hämärän virheilmoituksen, voi hyvinkin syyttää itseään. Säästyisi monta tavua muistia :P

Mutta optimointia tuokin!

EDIT: Ja switch-rakenne voisi olla käytössä...

EDIT2: No joo, ehkä ei. Mutta char on myös 8-bittinen luku, joten... vertailkaamme sen asciikoodia. Näin:

switch(toimitus) {
    case 43: // plussan asciikoodi
        tulos = eka + toka;
        break;
    case 45: // ja miinuksen
        tulos = eka + toka;
        break;
    default: // nyt on kusetettu
        cout << "Paelli, haluaisin kunnon merkin..." << endl;
}

Blaze [08.03.2007 18:20:03]

#

KingOfTheWorld kirjoitti:

Eikö tuo toimisi myös char-tyypillä?

Mahollisesti, en osaa C++:aa.

KingOfTheWorld kirjoitti:

Ja switch-rakenne voisi olla käytössä...

En tienny, voiko C++:ssa laittaa merkkijonoliteraaleja caseihin, C:ssä kun ei ainakaan voi.

Antti Laaksonen [08.03.2007 18:42:14]

#

KingOfTheWorld kirjoitti:

Mutta char on myös 8-bittinen luku, joten... vertailkaamme sen asciikoodia.

Tämä on ainakin varma tapa saada koodin tarkastelija ymmälleen. :)

Megant [08.03.2007 19:06:16]

#

KingOfTheWorld kirjoitti:

Mutta char on myös 8-bittinen luku, joten... vertailkaamme sen asciikoodia.

Eiköhän kuitenkin kannattaisi tehdä näin:

case '+':
/* tee jotain */

Paljon selkeämpää ja käytettävämpää.

hunajavohveli [08.03.2007 19:23:39]

#

Megant kirjoitti:

Eiköhän kuitenkin kannattaisi tehdä näin:

case '+':
/* tee jotain */

Minustakin viisainta noin. Tuossahan kun tarkastellaan vain yksittäisiä merkkejä, ei merkkijonoja. Merkintä '+' lienee kääntäjälle käytännössä sama kuin kirjoittaisi merkin ASCII-koodin.

koo [08.03.2007 19:31:55]

#

sooda kirjoitti:

\n, windowsissa vissiin \r\n. C++:ssa std::endl.

Siis kaikissa noissa \n. Jos ollaan tekstimoodissa, kirjasto muuttaa \n:n \r\n:ksi, jos se on tarpeen. C++:ssa std::endl pakottaa streamille myös flushauksen, mutta ilmankin pärjää ihan mainiosti.

KingOfTheWorld kirjoitti:

Eikö tuo toimisi myös char-tyypillä? Jos käyttäjä saa hämärän virheilmoituksen, voi hyvinkin syyttää itseään. Säästyisi monta tavua muistia :P

Mutta optimointia tuokin!

Jaaha, mistähän virheilmoituksista tässä on kyse, ketä pitäisi syytellä ja mikä muistinsäästöoptimointi? Tarkoitatko, että string kasvattaa exeä tai syö muistia?

// VAIHTOEHTO 1
#include <iostream>
#include <iomanip>
#include <istream>
#include <ostream>
#include <string>

int main()
{
  int eka, toka;
  std::string op;

  std::cin >> eka >> std::setw(1) >> op >> toka;
  if (op == "+") std::cout << eka + toka << "\n";
  else if (op == "-") std::cout << eka - toka << "\n";
  else std::clog << "tuntematon operaattori " << op << "\n";
}

// VAIHTOEHTO 2
#include <iostream>
#include <ostream>
#include <ostream>

int main()
{
  int eka, toka;
  char op;

  std::cin >> eka >> op >> toka;
  if (op == '+') std::cout << eka + toka << "\n";
  else if (op == '-') std::cout << eka - toka << "\n";
  else std::clog << "tuntematon operaattori " << op << "\n";
}

// VAIHTOEHTO 3
#include <cstdio>

int main()
{
  int eka, toka;
  char op;

  std::scanf("%d %c %d", &eka, &op, &toka);
  if (op == '+') std::printf("%d\n", eka + toka);
  else if (op == '-') std::printf("%d\n", eka - toka);
  else std::fprintf(stderr, "tuntematon operaattori %c\n", op);
}

Lopputulos: vaihtoehto 1, exe 9216 tavua; vaihtoehto 2, 8704 tavua; vaihtoehto 3, 6565 tavua. Exe on siis joka tapauksessa naurettavan pieni ja koodia on muutama rivi, joten ei ehkä kannata ryhtyä optimointiriemusta housujaan repimään, vaikka massiiviset 6 - 29 prossaa tuota saakin kutistumaan.

Kolmosvaihtoehdon tekeminen kesti muuten noin kymmenkertaisesti sen ajan kuin mitä ykkönen, kun röhelsin tuonne lukuformaattistringiin ylimääräisen prosenttimerkin ja oli muuten vähän vaikea nähdä, että mikä on kun ei pelaa.

Ylipäätänsä kannattaa optimoida vasta sitten, kun jokin sitä vaatii. Tarvii tehdä mittauksia eikä arvella kaikenlaista.

KingOfTheWorld kirjoitti:

Ja switch-rakenne voisi olla käytössä...
Mutta char on myös 8-bittinen luku, joten... vertailkaamme sen asciikoodia.

Switch on ihan hyvä, mutta taikanumeroita, ne vasta on eri jänniä! :-)

Blaze kirjoitti:

En tienny, voiko C++:ssa laittaa merkkijonoliteraaleja caseihin, C:ssä kun ei ainakaan voi.

Ei voi C++:ssakaan. Merkkiliteraaleja (ei -jono-) kyllä, niin kuin Megant näyttää.

Jartsala [08.03.2007 20:12:06]

#

#include <iostream.h>
     #include <conio.h>
#include <stdio.h>

int main()
{
      int a, b, c;
      char op;
      cout << "Minun ohjelma versio 1.00\n";
      cout << "Kirjoita luku";
      cin >> a;
      cout << "Kirjoita toinen luku";
      cin >> b;
      cout << "Laskutoimitus";
      std::cin >> a >> op >> b;
      if (op == '1') std::cout << a + b << "\n";
      else if (op == '2') std::cout << a - b << "\n";
      else std::clog << "tuntematon laskutoimitus" << op << "\n";
      getche();
}

Ihan jees toimii mutta sitä laskutoimitusta pitää laittaa monta kertaa ennenkuin se näyttää vastauksen, se vaan tekee rivnvaihtoa...

Megant [08.03.2007 20:29:00]

#

Tuo

std::cin >> a >> op >> b;

lukee tavaraa kaikkiin nuihin kolmeen muuttujaan, eikö siinä paikalla pitäisi olla esimerkiksi:

std::cin >> op;

TsaTsaTsaa [08.03.2007 21:21:29]

#

Jartsala kirjoitti:

#include <iostream.h>
     #include <conio.h>
#include <stdio.h>

int main()
{
      int a, b, c;
      char op;
      cout << "Minun ohjelma versio 1.00\n";
      cout << "Kirjoita luku";
      cin >> a;
      cout << "Kirjoita toinen luku";
      cin >> b;
      cout << "Laskutoimitus";
      std::cin >> a >> op >> b;
      if (op == '1') std::cout << a + b << "\n";
      else if (op == '2') std::cout << a - b << "\n";
      else std::clog << "tuntematon laskutoimitus" << op << "\n";
      getche();
}

Ihan jees toimii mutta sitä laskutoimitusta pitää laittaa monta kertaa ennenkuin se näyttää vastauksen, se vaan tekee rivnvaihtoa...

Kaikkien couttien ja cinien eteen pitää laittaa tuo "std::", tai sitten laitat heti #includejen jälkeen "using namespace std;".

Ja tosiaan tuossa nyt kysytään kaksi kertaa käyttäjältä arvo a- ja b-muuttujiin.

Jartsala [09.03.2007 17:17:41]

#

hehee sain toimiin omin avuin, vielä yksi kysymys olisi (ehkä lisää enemmän, en rupe tahraamaan tätä foorumia tekemällä satoja topiikkeja jokaiselle kysymykselle)

Miten saa ohjelman restartittamaan itsensä?

Metabolix [09.03.2007 17:27:42]

#

Jos pelkkä alkuun palaaminen riittää, niin vaikkapa gotolla (tai vastaavalla muulla silmukalla):

int main(void)
{
    int a;
alku:
    cin >> a;
    if (a > 7) {
        goto alku;
    }
    return 0;
}

Ihan oikea uudelleenkäynnistys on paljon hankalampi homma ja riippuu jo suuresti käyttöjärjestelmästäkin.

TsaTsaTsaa [09.03.2007 18:02:37]

#

// TUUNATTU LASKINOHJELMA
// (ei tosin hirveän paljon)

#include <iostream>
#include <cstdlib>
#include <sstream>
#include <string>

using namespace std;

int main()
{
      // Muuttujien määrittelyä ja alustusta
      string rivi;
      int a = 0;
      int b = 0;
      char op = '';

      // Tulosteet
      cout << "Minun ohjelma versio 1.00\n";
      cout << "Kirjoita lasku: ";

      // Luetaan kokonainen rivi tekstiä ja
      // parsitaan siitä luvut ja operaattori
      while ( getline(cin, rivi) )  // Silmukka pyörii niin kauan kun cin
                                    // on ehjä
      {
         // Tehdään string-virta ja alustetaan se juuri luetulla rivillä
         istringstream iss( rivi );

         // Katsotaan saadaanko luettua sieltä oikeanlaista tietoa
         if ( iss >> a >> op >> b )
         {
             // Tarkastellaan operaattoria ja tehdään mitä se käskee
             switch( op )
             {
               case '+':
                 cout << a << "+" << b << " = " << a + b << endl;
                 break;
               case '-'
                 cout << a << "-" << b << " = " << a - b << endl;
                 break;
               default:
                 cout << "Virheellinen operaattori!\n";
                 break;
             }
         }
         // Jos ei saatu luettua oikeanlaista tietoa, hypätään pois
         // silmukasta ja ohjelman suoritus pääsee etenemään.
         else
         {
             break;
         }
         // Virta pitää sulkea
         iss.close();
         cout << "Kirjoita lasku: ";
      }

      // Tyylikäs palautus.
      return EXIT_SUCCESS;
}

Tuo nyt sitten pyörii niin kauan kun syötetään kahden luvun yhteen- tai vähennyslaskuja tai kunnes cin menee rikki (ctrl+D:llä voit rikkoa sen).

EDIT: Vai tarviikos stringstreamia sulkea? En muista.

Jartsala [09.03.2007 18:07:52]

#

Metabolix ratkaisi ongelman, kiitoksia

Taas kysyttävää ja jos vaikuttaa käytän Dev-C++ 4 ohjelmaa

Mun laskin on aika tylyn näköinen ku se on sellanen musta pohjainen lätyskä, tuostahan sais windows applicationinkin mutta siihen tulee litania koodia joten en tajua mihin kohtaan pitäisi laskimen koodi laittaa?

Metabolix [09.03.2007 18:34:31]

#

Windows-ohjelmia ei tehdä alkuunkaan niin helposti, että vain laitettaisiin tuo koodi sinne. Nyt ihan itse opiskelemaan Windows-ohjelmointia, jos sellainen kiinnostaa. Luultavasti helpompi ratkaisu on wxWidgets-kirjasto, mutta joka tapauksessa graafiset tekstikentät ja muut ovat huomattavasti mutkikkaampia asioita kuin standardoitu tekstisyötteenluku konsoli-ikkunassa.

crafn [09.03.2007 18:54:04]

#

Luulen että tästä vois olla apua noitten graafisten ikkunoitten kanssa http://wxdsgn.sourceforge.net/index.php Muuten sama devcpp mut mukana on wxWidgetsille ikkuna-editori, joka säästää paljon vaivaa :)

Jartsala [09.03.2007 18:57:05]

#

Kiitoksia, lataan ja katselen tuota wxWidgetsiä...

Ja ongelma tuli, laitoin tämän koodi rimpsun projektiin

#include <wx/wxprec.h>

#ifdef __BORLANDC__
#pragma hdrstop
#endif

#ifndef WX_PRECOMP
// Include your minimal set of headers here, or wx.h
#include <wx/wx.h>
#endif

Ja se valittaa näitä
wx\wxprec.h: No such file or directory
ja
wx\wx.h: No such file or directory

Kaikki mitä tein oli että asensin widgetsin... oisko pitäny jotai muutaki?

Nyt laitoin wx kansion includesiin ni valituksia tulee 31, apua mitä ihmettä?!!?

Tuossa kaikki valitukset

In file included from C:\DEV-C_~1\Include\wx\defs.h:21,
                 from C:\DEV-C_~1\Include\wx\wxprec.h:13,
                 from c:\wxwidg~1.0\samples\toolbar\toolbar.cpp:21:
C:\DEV-C_~1\Include\wx\platform.h:196: wx\setup.h: No such file or directory
In file included from C:\DEV-C_~1\Include\wx\platform.h:279,
                 from C:\DEV-C_~1\Include\wx\defs.h:21,
                 from C:\DEV-C_~1\Include\wx\wxprec.h:13,
                 from c:\wxwidg~1.0\samples\toolbar\toolbar.cpp:21:
C:\DEV-C_~1\Include\wx\chkconf.h:98: #error "wxUSE_DYNLIB_CLASS must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:106: #error "wxUSE_EXCEPTIONS must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:114: #error "wxUSE_FILESYSTEM must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:122: #error "wxUSE_FS_ARCHIVE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:135: #error "wxUSE_DYNAMIC_LOADER must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:143: #error "wxUSE_LOG must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:151: #error "wxUSE_LONGLONG must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:159: #error "wxUSE_MIMETYPE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:175: #error "wxUSE_PRINTF_POS_PARAMS must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:183: #error "wxUSE_PROTOCOL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:225: #error "wxUSE_REGEX must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:233: #error "wxUSE_STDPATHS must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:241: #error "wxUSE_XML must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:249: #error "wxUSE_SOCKETS must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:257: #error "wxUSE_STREAMS must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:265: #error "wxUSE_STOPWATCH must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:273: #error "wxUSE_TEXTBUFFER must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:281: #error "wxUSE_TEXTFILE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:297: #error "wxUSE_URL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:305: #error "wxUSE_VARIANT must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:325: #error "wxUSE_ABOUTDLG must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:333: #error "wxUSE_ACCEL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:341: #error "wxUSE_ANIMATIONCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:349: #error "wxUSE_BITMAPCOMBOBOX must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:357: #error "wxUSE_BMPBUTTON must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:365: #error "wxUSE_BUTTON must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:373: #error "wxUSE_CALENDARCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:381: #error "wxUSE_CARET must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:389: #error "wxUSE_CHECKBOX must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:405: #error "wxUSE_CHOICE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:413: #error "wxUSE_CHOICEBOOK must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:421: #error "wxUSE_CHOICEDLG must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:429: #error "wxUSE_CLIPBOARD must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:437: #error "wxUSE_COLLPANE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:445: #error "wxUSE_COLOURDLG must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:453: #error "wxUSE_COLOURPICKERCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:461: #error "wxUSE_COMBOBOX must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:469: #error "wxUSE_COMBOCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:477: #error "wxUSE_DATAOBJ must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:485: #error "wxUSE_DATAVIEWCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:493: #error "wxUSE_DATEPICKCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:501: #error "wxUSE_DIRPICKERCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:509: #error "wxUSE_DISPLAY must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:517: #error "wxUSE_DOC_VIEW_ARCHITECTURE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:525: #error "wxUSE_FILEDLG must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:533: #error "wxUSE_FILEPICKERCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:541: #error "wxUSE_FONTDLG must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:549: #error "wxUSE_FONTMAP must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:557: #error "wxUSE_FONTPICKERCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:565: #error "wxUSE_GAUGE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:573: #error "wxUSE_GRAPHICS_CONTEXT must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:582: #error "wxUSE_GRID must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:590: #error "wxUSE_HELP must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:598: #error "wxUSE_HYPERLINKCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:606: #error "wxUSE_HTML must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:627: #error "wxUSE_ICO_CUR must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:635: #error "wxUSE_IFF must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:643: #error "wxUSE_IMAGLIST must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:651: #error "wxUSE_JOYSTICK must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:659: #error "wxUSE_LISTBOOK must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:667: #error "wxUSE_LISTBOX must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:675: #error "wxUSE_LISTCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:683: #error "wxUSE_LOGGUI must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:691: #error "wxUSE_LOGWINDOW must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:699: #error "wxUSE_LOG_DIALOG must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:707: #error "wxUSE_MDI must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:715: #error "wxUSE_MDI_ARCHITECTURE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:723: #error "wxUSE_MENUS must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:731: #error "wxUSE_MSGDLG must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:739: #error "wxUSE_NOTEBOOK must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:747: #error "wxUSE_ODCOMBOBOX must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:755: #error "wxUSE_PALETTE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:763: #error "wxUSE_POPUPWIN must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:771: #error "wxUSE_PRINTING_ARCHITECTURE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:779: #error "wxUSE_RADIOBOX must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:787: #error "wxUSE_RADIOBTN must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:795: #error "wxUSE_SASH must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:803: #error "wxUSE_SCROLLBAR must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:811: #error "wxUSE_SLIDER must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:819: #error "wxUSE_SOUND must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:827: #error "wxUSE_SPINBTN must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:835: #error "wxUSE_SPINCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:843: #error "wxUSE_SPLASH must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:851: #error "wxUSE_SPLITTER must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:859: #error "wxUSE_STATBMP must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:867: #error "wxUSE_STATBOX must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:875: #error "wxUSE_STATLINE must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:883: #error "wxUSE_STATTEXT must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:891: #error "wxUSE_STATUSBAR must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:899: #error "wxUSE_TAB_DIALOG must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:907: #error "wxUSE_TEXTCTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:915: #error "wxUSE_TIPWINDOW must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:923: #error "wxUSE_TOOLBAR must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:931: #error "wxUSE_TOOLTIPS must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:939: #error "wxUSE_TREECTRL must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:947: #error "wxUSE_VALIDATORS must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:955: #error "wxUSE_WXHTML_HELP must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:963: #error "wxUSE_XRC must be defined."
C:\DEV-C_~1\Include\wx\chkconf.h:1725: #error "wxMessageBox is always needed"

crafn [09.03.2007 20:57:20]

#

Kokeile alottaa vaikka wxDialog- tai wxFrame projekti ja sen päälle kasaa haluamas jutut.

Jartsala [09.03.2007 21:07:39]

#

Mitenkäs se aloitetaan?

TsaTsaTsaa [09.03.2007 22:27:56]

#

Jartsala kirjoitti:

Mitenkäs se aloitetaan?

En tarkemmin tutkinut, mutta oisko tästä apua:
http://wxdsgn.sourceforge.net/tutorials/view.php?file­=6576dea7bfa8fe6b1744201d583a4a1a54185107.eg

Jartsala [10.03.2007 09:02:40]

#

Hmm... Siis täh ei mulla tollasia ole koko kääntäjässä (Dev-C++ huomaa 4, 5 on uusin) eli ihankuin ei Dev olisi moksiskaan asennettuani wxWidgetsin, apua häh?!

Eli ongelma on se kun aloitan projektin ja valikosta pitää valita tyyli ni siinä ei o sitä wxprojektia?

TsaTsaTsaa [10.03.2007 09:12:14]

#

Jartsala kirjoitti:

Eli ongelma on se kun aloitan projektin ja valikosta pitää valita tyyli ni siinä ei o sitä wxprojektia?

Asenna se wxDev-C++: http://wxdsgn.sourceforge.net/downloads.php?sid­=8291be4ee535259e7e8cb7c7f00fc866

Metabolix [10.03.2007 22:34:20]

#

Niin, nyt olet asentanut jonkin aivan väärin. Asensithan wxWidgets-devpakin etkä vaikkapa lähdekoodeja? Ellei se peräti tule tuossakin mukana...

LaNu [13.03.2007 02:15:31]

#

Jartsala kirjoitti:

#include <iostream.h>
#include <conio.h>
#include <stdio.h>

Kaikkien couttien ja cinien eteen pitää laittaa tuo "std::", tai sitten laitat heti #includejen jälkeen "using namespace std;".

Ja tosiaan tuossa nyt kysytään kaksi kertaa käyttäjältä arvo a- ja b-muuttujiin.

Myös tuo .h pitäisi pudottaa pois, jonka jälkeen homma pelaisi kuvailemallasi tavalla.


Sivun alkuun

Vastaus

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

Tietoa sivustosta