C++ -kysymykset
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: C++ -kysymykset
Joo olen. Tässä on vielä kuva kaikista kansion tiedostoista, siltä varalta, jos siellä on jotain mikä sekoittaisi suoritusta:
- Attachments
-
- comps.PNG (10.29 KiB) Viewed 9905 times
Re: C++ -kysymykset
sisältö varmuudenvuoksi:
CONSOLE.H
CONSOLE.CPP
NP, ite oon iha avuton Coolbasicissä..
CONSOLE.H
Code: Select all
//**************************** BEGIN CONSOLE.H ********************************
#ifndef ECONSOLE_H
#define ECONSOLE_H
#include <windows.h>
//==============================================================================
// class Console - Eric Tetz 10/5/99
//
// Encapsulates the Windows console API (some of it).
//
// Each process can have one and only one console. For this reason, all Console
// members are static. If your program is already a console app, you can freely
// call any method of this class. If your app is NOT a console app, you must
// first call Alloc() to create a console for your process and redirect IO to
// it. You may call Free() to detach your process from it's console.
//
//==============================================================================
/* bool SetTitle (LPCSTR sTitle)
bool SetSize (int columns, int lines)
bool GetSize (int* pcolumns, int* plines)
bool SetCursorPos (int x, int y)
bool GetCursorPos (int* px, int* py)
bool SetCursorSize (DWORD dwPercentShown, bool bVisible = false)
bool SetTextColor (Color FgColor, Color BgColor = Black)
bool Clear()
*/
class Console
{
public:
enum Color
{
Black = 0,
Grey = FOREGROUND_INTENSITY,
LightGrey = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE,
White = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY,
Blue = FOREGROUND_BLUE,
Green = FOREGROUND_GREEN,
Cyan = FOREGROUND_GREEN | FOREGROUND_BLUE,
Red = FOREGROUND_RED,
Purple = FOREGROUND_RED | FOREGROUND_BLUE,
LightBlue = FOREGROUND_BLUE | FOREGROUND_INTENSITY,
LightGreen = FOREGROUND_GREEN | FOREGROUND_INTENSITY,
LightCyan = FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY,
LightRed = FOREGROUND_RED | FOREGROUND_INTENSITY,
LightPurple = FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY,
Orange = FOREGROUND_RED | FOREGROUND_GREEN,
Yellow = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY,
};
public:
static bool Alloc();
static bool Free();
static bool SetTitle (LPCSTR sTitle);
static bool SetSize (int columns, int lines);
static bool GetSize (int * pcolumns, int * plines);
static bool SetCursorPos (int x, int y);
static bool GetCursorPos (int * px, int * py);
static bool SetCursorSize (DWORD dwPercentShown, bool bVisible = false);
static bool SetTextColor (Color FgColor, Color BgColor = Black);
static bool Clear();
protected:
static bool RedirectIoToConsole ();
};
#endif //ECONSOLE_H
CONSOLE.CPP
Code: Select all
// console.cpp
//
#include "console.h"
using namespace std;
//
// Clears the screen
//
void clrscr()
{
COORD coordScreen = { 0, 0 };
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsole, &csbi);
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
FillConsoleOutputCharacter(hConsole, TEXT(' '),
dwConSize,
coordScreen,
&cCharsWritten);
GetConsoleScreenBufferInfo(hConsole, &csbi);
FillConsoleOutputAttribute(hConsole,
csbi.wAttributes,
dwConSize,
coordScreen,
&cCharsWritten);
SetConsoleCursorPosition(hConsole, coordScreen);
}
//
// Moves the cursor to x, y in console window
// ie x=left\right y=top\bottom
//
void gotoxy(int x, int y)
{
COORD point;
point.X = x; point.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),
point);
}
//
// Set text and background colors
//
void setrgb(int color)
{
switch (color)
{
case 0: // White on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
case 1: // Red on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED);
break;
case 2: // Green on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_GREEN);
break;
case 3: // Yellow on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_GREEN);
break;
case 4: // Blue on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_BLUE);
break;
case 5: // Magenta on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_BLUE);
break;
case 6: // Cyan on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_GREEN |
FOREGROUND_BLUE);
break;
case 7: // Black on Gray
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | BACKGROUND_INTENSITY);
break;
case 8: // Black on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE);
break;
case 9: // Red on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE |
FOREGROUND_RED);
break;
case 10: // Green on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_GREEN);
break;
case 11: // Yellow on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_RED |
FOREGROUND_GREEN);
break;
case 12: // Blue on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_BLUE);
break;
case 13: // Magenta on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_RED |
FOREGROUND_BLUE);
break;
case 14: // Cyan on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_GREEN |
FOREGROUND_BLUE);
break;
case 15: // White on White
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_INTENSITY | FOREGROUND_INTENSITY |
BACKGROUND_RED | BACKGROUND_GREEN |
BACKGROUND_BLUE | FOREGROUND_RED |
FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
default : // White on Black
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | FOREGROUND_RED |
FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
}
}
Last edited by Jonhu on Sun Aug 10, 2008 6:37 pm, edited 1 time in total.
Tekeillä pikkupelejä ja ohjelmia
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: C++ -kysymykset
EDIT: Ratkaistu! Mulla oli Project optionsissa GUI eikä konsoli! :D Nyt toimii täydellisesti. Kiitos.
EDIT2: Ei ole kyllä nopeampi tämä kuin se mun entinen systeemi. Välkkyy vaan eri tavalla :D
Kumma kun NetHackissa, Roguessa, DoomRL:ssä jne. ei välky ollenkaan konsoli O_o'
EDIT2: Ei ole kyllä nopeampi tämä kuin se mun entinen systeemi. Välkkyy vaan eri tavalla :D
Code: Select all
#include <iostream>
#include <conio.h>
#include "console.cpp"
using namespace std;
int main(int argc, char *argv[])
{
while(true)
{
for(int y=0;y<20;y++)
{
for(int x=0;x<79;x++)
{
gotoxy(x,y);
cout << "#";
}
}
_getch();
clrscr();
}
system("pause");
return 0;
}
Re: C++ -kysymykset
OFFTOPIC: Pilkunviilaus
Dev-C++ on IDE ja siinä on kääntäjänä mukana gcc/MingW[/size][/color]Grandi wrote:Mullakin.Jonhu wrote:Mikä kääntäjä sinulla on? itsellä on dev c++ (4.9.9.2)
Re: C++ -kysymykset
sitten ongelma on jossain muualla.. Ainakin sait uuden "kirjaston" ja sen mukana hyödyllisiä käskyjä..Grandi wrote:EDIT: Ratkaistu! Mulla oli Project optionsissa GUI eikä konsoli! Nyt toimii täydellisesti. Kiitos.
EDIT2: Ei ole kyllä nopeampi tämä kuin se mun entinen systeemi. Välkkyy vaan eri tavalla
Kumma kun NetHackissa, Roguessa, DoomRL:ssä jne. ei välky ollenkaan konsoli O_o'
Tekeillä pikkupelejä ja ohjelmia
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: C++ -kysymykset
Vian on pakko olla tässä coutissa. Olisikos sille jotain korvaajaa, joka olisi hiukan nopeampi? Sen pitäisi tietenkin tulostaa konsoliin. Niin ja nuo käskyt ovat tosiaan hyödyllisiä. Ainoana tuo värinvaihto juttu on melko huono, mutta pystyn korvaamaan sen eräällä toisella kirjastolla. EDIT: Oho, tuo kirjastohan juuri käyttää sitä menetelmää, mutta asettaa samalla 16 värin rajoituksen. Tai siis... Eihän värejä ole kuin 16, mutta tarkoitin tekstin näyttämistyylejä.
EDIT: NetHack näyttäisi käyttävän Printf:ää. Taidan testata. EDIT: Yhtä hidas. Ja näitä edittejä rupes satelee vähän liikaakin.
EDIT: NetHack näyttäisi käyttävän Printf:ää. Taidan testata. EDIT: Yhtä hidas. Ja näitä edittejä rupes satelee vähän liikaakin.
Last edited by Koodiapina on Sun Aug 10, 2008 7:13 pm, edited 1 time in total.
Re: C++ -kysymykset
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
Kehittäjä
CoolBasic Classic
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: C++ -kysymykset
Kiitos. Nyt on NCurses käytössä. Mutta kuten arvata saattaa, ongelmaa pukkaa; Tämä opas antaa tuommoisen ohjeen. Mutta tässä muutama avoimeksi jäänyt kysymys. Pitääkö mun siirrellä jotain filuja System32 kansioon? Mitä mä kirjoitantilalle, kun en tiedä edes missä se curses.h on (Kun tuolla on miljoona filua ja tuhat kansiota)? Ja kääntäjä tietenkin herjaa, kun se ei löydy samasta kansiosta (alikansiosta kylläkin). Kiitos jos joku vastaa :)
EDIT: Niin ja eihän tuo vaan ole mikään linux-only? Kun make-filestä puhutaan melkoisesti.
Code: Select all
#include <curses.h>
EDIT: Niin ja eihän tuo vaan ole mikään linux-only? Kun make-filestä puhutaan melkoisesti.
Re: C++ -kysymykset
Ncurses on linux-only, mutta siirtä on porttaus nimeltä pdcurses windowsille. Löydät sen täältäGrandi wrote:Kiitos. Nyt on NCurses käytössä. Mutta kuten arvata saattaa, ongelmaa pukkaa; Tämä opas antaa tuommoisen ohjeen. Mutta tässä muutama avoimeksi jäänyt kysymys. Pitääkö mun siirrellä jotain filuja System32 kansioon? Mitä mä kirjoitantilalle, kun en tiedä edes missä se curses.h on (Kun tuolla on miljoona filua ja tuhat kansiota)? Ja kääntäjä tietenkin herjaa, kun se ei löydy samasta kansiosta (alikansiosta kylläkin). Kiitos jos joku vastaaCode: Select all
#include <curses.h>
EDIT: Niin ja eihän tuo vaan ole mikään linux-only? Kun make-filestä puhutaan melkoisesti.
Ja kun viittasit make-fileihin, niin ne eivät ole mikään linux-only juttu, vaan niitä voidaan käyttää ihan hyvin Windowsillakin.
- Dibalo
- Advanced Member
- Posts: 298
- Joined: Mon Aug 27, 2007 8:12 pm
- Location: Espoo, Finland
- Contact:
Re: C++ -kysymykset
.cpp-tiedostoa EI KOSKAAN includeteta toiseen .cpp-tiedostoon! .cpp-tiedostot välitetään linkkerille (IDE hoitaa yleensä tämän), joka luo niistä omia mooduleita (.obj), jotka linkitetään lopulliseen exeen. Tämän vuoksi kääntäjä herjaa moneen kertaan määritellystä funktioista.Grandi wrote:Code: Select all
#include <iostream> #include <conio.h> #include "console.cpp"
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: C++ -kysymykset
No linkkeri mun nykyisenkin ongelman aiheutti. Kokeilin erästä esimerkkikoodia, niin tulee [linker error]:ia kymmenen kappaletta, ja sen perässä "unknown resource X". Tuo NCurses opas väittää, että pitää olla -lncurses, joten yritin sitä linkkerin asetuksiin. Linkkeri kuitenkin herjaa minkä ehtii jos se on siellä. Ja voiko se olla syynä, että käytän pdcursea, ja tuo on ncurse opas?
Re: C++ -kysymykset
tota mistä ton vois lataa, kirjotin googleen c++ download ja sieltä tuli microsoft visual c++ express edition ja latasin sitä mutta se kestää ihan sairaasti kun se lataa,joten lopetin latauksen, ja tuskin toi oli se oikea vai ?
vai kannattaako edes siirtyä c++:saan,jos ei niin sanokaas mihin? ja voitte pistää linkin mukaan mistä sen voi ladata
vai kannattaako edes siirtyä c++:saan,jos ei niin sanokaas mihin? ja voitte pistää linkin mukaan mistä sen voi ladata
Last edited by naabster on Mon Aug 11, 2008 4:29 pm, edited 1 time in total.
- -Z-
- Devoted Member
- Posts: 682
- Joined: Tue Aug 28, 2007 3:33 pm
- Location: In ur danmaku, grazin ur bullets
Re: C++ -kysymykset
Mitä nyt itse olen tätä ketjua seuraillut, niin kyllä tuo oli ihan oikea, mutta Dev-c++ on kuulemma parempi IDE. Ja tämänkin olisit saanut tietää, jos olisit lukenut aiemman keskustelun.naabster wrote:tota mistä ton vois lataa, kirjotin googleen c++ download ja sieltä tuli microsoft visual c++ express edition ja latasin sitä mutta se kestää ihan sairaasti kun se lataa,joten lopetin latauksen, ja tuskin toi oli se oikea vai ?
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: C++ -kysymykset
Kannattaa klikata latauswizardin alkaessa ladattavista asioista pois SQL server ja manuaali. Ne vievät muistaakseni puolet latausajasta, ja ne voi ladata jälkeenpäin jos tarvetta löytyy. Lisäksi manuaalia voi lukea netistä onlinenä.naabster wrote:se kestää ihan sairaasti kun se lataa,joten lopetin latauksen, ja tuskin toi oli se oikea vai ?
- Dibalo
- Advanced Member
- Posts: 298
- Joined: Mon Aug 27, 2007 8:12 pm
- Location: Espoo, Finland
- Contact:
Re: C++ -kysymykset
*Reps*-Z- wrote:...mutta Dev-c++ on kuulemma parempi IDE...
Re: C++ -kysymykset
Mitäs sille repesit? En mäkään Visual C++.Net Expressistä tykkää, se ei tykkää ei-dotnet-koodista muistaakseni.Dibalo wrote:*Reps*-Z- wrote:...mutta Dev-c++ on kuulemma parempi IDE...
-
- Active Member
- Posts: 248
- Joined: Mon Aug 27, 2007 9:23 pm
- Location: Oulu
Re: C++ -kysymykset
No älä nyt puhu suoraan sanoen paskaa. Siinä (ver. 2008 ja se on parempi kuin 2005) tulee ihkaoikea C++-kääntäjä, eli se "tykkää" koodista ihan normaalisti. Olen sillä esim. pienen SDL-pelin alun tylsyyksissäni vääntänyt ja kaikki onnistui mainiosti. Tarvitaan vain vähän skillssejä.esa94 wrote:Mitäs sille repesit? En mäkään Visual C++.Net Expressistä tykkää, se ei tykkää ei-dotnet-koodista muistaakseni.
Kyllä minäkin vähän repeilen. "Kuulemma", "muistaakseni". Älkää kirjoitelko lämpimiksenne jos ette ole edes kokeilleet onnistuneesti.
OoO
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: C++ -kysymykset
No itse tarvitsisin tutoriaalin, jotta oppisin Visual C++:n käytön, siinä on niin paljon erilaisia hilavitkuttimia ja härpäkkeitä.
Esimerkiksi se tardillinen tarve niille debug- tai release-versioille. Minä kehitän ohjelmiani kuin CB:ssä, en minä tarvitse kuin yhden kansion, jossa on lähdekoodit ja exe, ja alakansiossa media. Onko tämä mahdollista Visual C++:ssa? O.o itse en moisessa onnistunut.
Lisäksi linkkerin asetukset ovat jonkun pirullisen valepohjan alla tai vastaavassa paikassa, kun en moisia mistään löydä. Kaiken kukkuraksi projektisysteemi on hieman hämyinen, ja IDE hidastelee ja tökkii kun ei ole uusinta rautaa alla.
Jos näitä onnistut valottamaan, niin uskallan ehkä kokeilla kyseistä IDEä uudelleen.
EDIT: zomglol tai vastaavaa, sehän on 900. posti D:
Esimerkiksi se tardillinen tarve niille debug- tai release-versioille. Minä kehitän ohjelmiani kuin CB:ssä, en minä tarvitse kuin yhden kansion, jossa on lähdekoodit ja exe, ja alakansiossa media. Onko tämä mahdollista Visual C++:ssa? O.o itse en moisessa onnistunut.
Lisäksi linkkerin asetukset ovat jonkun pirullisen valepohjan alla tai vastaavassa paikassa, kun en moisia mistään löydä. Kaiken kukkuraksi projektisysteemi on hieman hämyinen, ja IDE hidastelee ja tökkii kun ei ole uusinta rautaa alla.
Jos näitä onnistut valottamaan, niin uskallan ehkä kokeilla kyseistä IDEä uudelleen.
EDIT: zomglol tai vastaavaa, sehän on 900. posti D:
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: C++ -kysymykset
Ne ihmetiedostot on vaan lisäkehitystä varten. Sen .exen pitäisi toimia ihan yksinäänkin... tai ainakin mulla kun käytin VC++ (2008). Joo ja mullakin jumittaa aika kamalasti. Suurin syy siihen miks vaihdoin aikanaan Deviin.koodaaja wrote:Minä kehitän ohjelmiani kuin CB:ssä, en minä tarvitse kuin yhden kansion, jossa on lähdekoodit ja exe, ja alakansiossa media. Onko tämä mahdollista Visual C++:ssa? O.o itse en moisessa onnistunut.
EDIT: Mäpä sainkin ekana 900 postia. Lälläslää :D
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: C++ -kysymykset
Niin no, sinä spämmit nopeammin, minkäs sille mahtaa T__T
Ja ne ihmetiedostot eivät haittaa mitään, mutta miksi hiivatissa .exeni pitää tunkea parin alakansion taakse? Ja sitten se "debug" -nimi kummittelee joka paikassa.
Ja ne ihmetiedostot eivät haittaa mitään, mutta miksi hiivatissa .exeni pitää tunkea parin alakansion taakse? Ja sitten se "debug" -nimi kummittelee joka paikassa.