Mikä hiivatti se oli se merkki jolla saikaan rivin vaihdon aikaan?
\n
, windowsissa vissiin \r\n
. C++:ssa std::endl
.
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ä.)
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"; }
> 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; }
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.
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. :)
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ää.
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.
sooda kirjoitti:
\n
, windowsissa vissiin\r\n
. C++:ssastd::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ää.
#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...
Tuo
std::cin >> a >> op >> b;
lukee tavaraa kaikkiin nuihin kolmeen muuttujaan, eikö siinä paikalla pitäisi olla esimerkiksi:
std::cin >> op;
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.
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ä?
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.
// 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.
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?
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.
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 :)
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"
Kokeile alottaa vaikka wxDialog- tai wxFrame projekti ja sen päälle kasaa haluamas jutut.
Mitenkäs se aloitetaan?
Jartsala kirjoitti:
Mitenkäs se aloitetaan?
En tarkemmin tutkinut, mutta oisko tästä apua:
http://wxdsgn.sourceforge.net/tutorials/view.
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?
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
Niin, nyt olet asentanut jonkin aivan väärin. Asensithan wxWidgets-devpakin etkä vaikkapa lähdekoodeja? Ellei se peräti tule tuossakin mukana...
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.