Dali se funkcije tipa cin; cout; i sl. koje rade u konzoli mogu raditi i u standard windows aplication? Tj. dali će mi davati iste radnje kao i u konzoli?
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Dali se funkcije tipa cin; cout; i sl. koje rade u konzoli mogu raditi i u standard windows aplication? Tj. dali će mi davati iste radnje kao i u konzoli?
cin i cout su objekti, ne funkcije. cin je objekt klase istream, a cout je objekt klase ostream. I u pravilu su oba podešena tako da uzimaju, odnosno ispisuju sadržaj iz/u konzolu. Navodno se to može preusmjeriti (možda IDE ima svoju konzolu ili može konzola biti paralelno s prozorima - probaj napraviti program s GUI-jem pa onda probaj nešto ispisati u konzolu preko objekta cout).
Pogledaj i ovo: http://www.cplusplus.com/reference/iostream/ostream/
Tu vidiš da postoje i klase koje nasljeđuju, tj. proširuju ostream, tipa ofstream - to je znači ostream koji omogućava ispis u datoteku, umjesto u konzolu (na ekran).
Pitanje ti je inače problematično - pitanja se u programiranju tako ne postavljaju, nego kažeš "hoću to i to" i onda pitaš kako da to izvedeš. Treba ti konzola u GUI programu ili što?
Edit: baš sam probao napraviti Win32 GUI project u CodeBlocks - kod pokretanja otvara i konzolu i GUI. I napravio sam da kod izlaza ispiše tekst u konzolu pomoću cout <<. I ispisao je.
Dali se funkcije tipa cin; cout; i sl. koje rade u konzoli mogu raditi i u standard windows aplication? Tj. dali će mi davati iste radnje kao i u konzoli?
Misliš hoće li ispisivati tekst, pa nemogu, jer su oni objekti za rad u konzoli, ali nekontam šta pitaš, vjerovatno misliš na MessageBox, ili?
Tako nekako. Recimo kada želim napisati rečenicu u konzoli u kod upišem:
cout << "Neki teks. " << endl;
A kada želim unjeti nešto preko tipkovine ide:
cin >> varijabla; // ili nešto drugo ili one varijacije kao što su:
cin.getline(var, 500); ili getline(cin, var);
Pa me zanima dali cout i cin mogu koristiti i za obične windows aplikacije? U DevC++-u imam opciju kada pravim novi projekt izabrati windows aplicatio i već dobijem kod za obični windows prozor, i znam osnove i htio bih recimo napraviti program u kojemu ti pogađaš broj koji je zamislio kompjuter. I ja to znam napraviti u konzoli, i radi mi kod za konzolu, pa me zanima kada bi prekopirao taj kod u ovaj program di mi je već ispisan kod za win prozor dali bi on radio? (Kužite sad?).
Značio htio bih kao imati konzolu ali da se ne vidi onaj crni ekran sa onim slovima, nego da to makar malo ljepše bude. Ali ne bih radio ništa što ne znam...kao primjer, odmah napraviti windows 9 ... nego bih htio ono što pišem za konzolu upisati i ovdje samo da mi se to izvršava unutar normalnog windows prozora.
Značio htio bih kao imati konzolu ali da se ne vidi onaj crni ekran sa onim slovima, nego da to makar malo ljepše bude. Ali ne bih radio ništa što ne znam...kao primjer, odmah napraviti windows 9 ... nego bih htio ono što pišem za konzolu upisati i ovdje samo da mi se to izvršava unutar normalnog windows prozora.
Prvo se dogovori sam sa sobom što zapravo hoćeš, pa nas izvjesti o tome.
Generalno gledano gotovo sav kôd možeš prekopirati iz starog konzolnog programa, samo što ćeš onda naravno izbaciti cin i cout i koristiti neki drugi način za dohvat i prikaz infomacija. Način koji ima veze s GUI-jem.
Shvati da ti s cin samo puniš sadržaj varijabli i da s cout samo prikazuješ neki sadržaj. Je li tako? Dakle, to je samo interakcija s korisnikom - ništa više. Logika programa bi ti morala biti odvojena od toga.
Ma ne potpuno si pobrko stvari, za GUI moraš uzeti teki framework, malo pogledaj temu, stavljao sam negdje linkove.
QT:
http://qt.nokia.com/products/
http://en.wikipedia.org/wiki/Windows_API
To što si u DevC++ vidio je WinApi, nemožeš ispisati kao na konzolu, nego moraš imati ili neki box ili label,...
Ja ti preporučujem C#, ima odličnu stvar WPF, više o njemu imaš u temi.
Ti bi htio koristiti texbox-ove win aplikacije
e, tu ti se stvari razlikuju ovisno o tome koji jezik i koji framework koristiš
ja radim u C# , a koristim .Net Framework
tu su stvari dosta jednostavne:
naravno, ne koristim naredbe za konzolni ispis i upis, nego radim sa textBox-ovima:
textBox1.Text = "0"; - prikaz u textBox-u
string rijec = textBox1.Text - unos iz textBox-a
ako radiš u c++ koristi neki framework npr. QT
ovo ti je sasvim drugi par postola od jezika samog, za isti jezik radiš drukčije u drugom frameworku
i ovo nema nikakve veze sa logikom samog programa
konverter valuta ti je isti i u konzolnoj i win aplikaciji , samo se ulaz i izlaz razlikuju.
Baš gledam malo QT, meni se .Net Framework čini bolji i jednostavniji (ili je to samo moj dojam)
.Net je odličan u C#, pogotovo od 3.0, sa WPF-om,...
Aha, sad kontam
Radim u C++ pa koji mi je najbolji framework za početak. Jer sam pri kraju sa konzolnim aplikacijama (sa knjigom) i samo me interesiralo dali bi to mogao napraviti. Znači, koji je vaš pridjlog framework-a za početnika u GUI aplikacijama?
Znači, koji je vaš pridjlog framework-a za početnika u GUI aplikacijama?
Ili prijeđi na C# pa koristi .NET ili koristi VCL iz Borland C++Buildera. Ne znam koliko smisla ima opterećivati se s drugim frameworkovima.
Aha, sad kontam
Radim u C++ pa koji mi je najbolji framework za početak. Jer sam pri kraju sa konzolnim aplikacijama (sa knjigom) i samo me interesiralo dali bi to mogao napraviti. Znači, koji je vaš pridjlog framework-a za početnika u GUI aplikacijama?
WinApi, QT, .Net, za početnika?, hmm pa možda je WinApi malo težak za početak.
Ili prijeđi na C# pa koristi .NET ili koristi VCL iz Borland C++Buildera. Ne znam koliko smisla ima opterećivati se s drugim frameworkovima.
Da, C# je odličan za GUI, WPF je odličan, mada ni Windows Forms nisu loše, ali WPF ih zamjenjuje.
QT nije loš, ali ni WinApi korišten koliko ja znam, u QT nisam radio ništa dok u WinApi-u jesam preobao neke stvari.
ja imam problem sa ovim zadatkom, već se neko vrijeme vrtim sa njime i malo mi je već blesavo, zašto ga ne razumijem. Naime, kada ovo kompajliram, izbaci mi code::blocks je jedan error -no matching function to call - guglao sam i otprilike razumijem što je to, ali ne kužim kako primjeniti u ovom zadatku:
jel ima netko ideju kako zašto i zbog čega se meni izbacuje taj error? hvala unaprijed
Naime, kada ovo kompajliram, izbaci mi code::blocks je jedan error -no matching function to call
Za koju liniju ti to izbaci?
KompleksniBroj operator+(KompleksniBroj &lijevi, KompleksniBroj &desni){ //overload zbrajanje
return KompleksniBroj(lijevi.re+desni.re , lijevi.im+desni.im);
}
KompleksniBroj operator*(KompleksniBroj &lijevi, KompleksniBroj &desni){ //overload mnozenje
return KompleksniBroj(lijevi.re*desni.re + lijevi.re*desni.im , lijevi.im*desni.re + lijevi.im*desni.im);
}
Umjesto zareza si napisao plus...
Može li mi netko preporučiti dobru knjigu za C++ Qt SDK?
Može li mi netko preporučiti dobru knjigu za C++ Qt SDK?
http://www.amazon.com/Book-Qt-Art-Building-Applications/dp/1593271476
Imaš tutorijale, sa njihove oficijalne stranice:
http://qt.nokia.com/products/
Hvala, ništa na hrvatskome?
Ne, ali možda je bolje da pređeš na C#, .Net framework i koristiš WPF.
http://dump.hr/ciklus/18
Imaš video materijale, pogledaj prvi i zadnji.
Naime, kada ovo kompajliram, izbaci mi code::blocks je jedan error -no matching function to call
Za koju liniju ti to izbaci?
pa izbacivalo mi je za oba overloada. 27 linija
KompleksniBroj operator+(KompleksniBroj &lijevi, KompleksniBroj &desni){ //overload zbrajanje
return KompleksniBroj(lijevi.re+desni.re , lijevi.im+desni.im);
}
KompleksniBroj operator*(KompleksniBroj &lijevi, KompleksniBroj &desni){ //overload mnozenje
return KompleksniBroj(lijevi.re*desni.re + lijevi.re*desni.im , lijevi.im*desni.re + lijevi.im*desni.im);
}
Umjesto zareza si napisao plus...
HVALA puno. ja ne mogu vjerovati na što sam ja potrošio nekoliko sati i nikako nisam ni vidio da mi je to tu taj glpavi zarez ide. Spasio si mi upravo još koji sat za*ebancije.
Nemogu vjerovati kakva glupava pogreškica, čak su je i ne može primejtiti odmah, nego se prvo zehebavam do iznemoglosti i onda shvatim tek na kraju :)
Hvala, ništa na hrvatskome?
Jako slabo ces takvih materijala naci na hrvatskom. Prakticki sve je na engleskom. Jbg, get used to it...
Zadatak: Napisi program koji racuna da li je zbir parnih veci od zbira neparnih brojeva u intervalu od 1 do N..
Ja sam pokusao ovako,ali taj moj program ne radi..
Što ti radi petlja for? Ništa! Apsolutno ništa! Imaš praznu petlju.
Najveća pogreška koju si napravio je što nisi stavljao razmake - što nisi pravilno indentirao kôd s lijeve strane, ali i što nisi odvajao kod linijom razmaka. UVIJEK prije i poslije petlji (i u drugim slučajevima koji to zahtijevaju - recimo switchevi, često dobro dođe kod if-ova) stavljaj red razmaka. Da si stavio razmak ispred i iza petlje, vidio bi da tvoja petlja ne radi apsolutno ništa.
PS nekako mi se čini da je rješenje tvog zadatka - je li N paran ili neparan. Ako je paran, onda je veći zbroj parnih, ako je neparan, onda je veći zbroj neparnih.
Treba sabrati sve neparne i sve parne brojeve i ako su parni veci oduzeti neparne od parnih i obrnuto i ispisati razliku..
TO JE TAJ ISTI ZADATAK.
- sume postavi na nulu prije for petlje.
- unutar petlje if naredbom provjeri da li je trenutni "i" paran ili neparan te ga sukladno tome dodijeli sumi parnih ili neparnih.
- nakon petlje if naredbom provjeri koja je suma veća te ispiši poruku korisniku.
Pogledaj sliku par postova iznad i reci sta ne valja u programu??
Pa sad sam ti rekao.
Mozes napisat kod programa ja sve uradim kao i ti i nece opet :D
suma_parnih = 0;
suma_neparnih = 0;
za i = 1 do N
ako je "i" paran
suma_parnih = suma_parnih + i;
inače
suma_neparnih = suma_neparnih + i;
ako je suma_parnih > suma_neparnih
ispiši "Suma parnih je veća"
....
Nisi shvatio treba da ispise razliku..
Ako je suma parnih veca da od nje oduzme sumu nepranih i da to ispise i obrnuto :D
Mozes napisati u c++ i provjeriti ja tako uradio kao ti i nece .