Új hozzászólás Aktív témák
-
Dolby
senior tag
Sziasztok!
Egy ismerősöm Borland C-t használ (3as verzió) és az új gépén (intel 2mag) ha futtatja a programot egyszerűen kilép
lehet h kell valamit telepíteni h a két magot tudja kezelni?
- Nyugalom, a hosszú élet ritka!
-
!wannabe
tag
Hi!
Eclipse-t hasznalok illetve probálnék. C++-ban mondjuk "hello world"-t futtatni de allandoan kifagy amikor a 'cout'-hoz erek. Hallottam, hogy be lehet állítani valamit, hogy ez ne legyen problem. Vmit be pipálni vagy vmit nem be 'x'-elni már nem tudom. Hátha itt tud vki segiteni.
-
!wannabe
tag
pl amikor azt irom h:
std::cout
akkor a '::' utan megáll és nem csinál semmit. Elszürkül és tölt kb 4 masodpercig, aztan lehet folytatni a munkat. Neha '<<' utan csinalja. Kaptam egy olyan tippet, hogy a project --> properties-ben kapcsoljam ki az indexelest. Ez megtortent, de a dolgon nem valtoztatott.
Ha mar ennyire belejottem, akkor kerdezek vmi mast is.
#include <iostream>
using namespace std;
void beker(int& elemszam)
{
cout << "Kerem a tömb elemszámát: ";
cin >> elemszam;
}
void feltolt(int elemszam, int * tomb)
{
for(int i=0; i<elemszam; i++)
{
cout << "Kerem adja meg a tömb " << i <<". elemét: ";
cin >> tomb[i];
}
}
void kiir(int elemszam, int * tomb)
{
for(int i=0; i<elemszam; i++)
{
cout << tomb[i];
}
}
void csere(int elemszam, int * tomb)
{
for(int i=0; i<elemszam-1; i++)
{
for(int j=i+1; i<elemszam; i++)
{
if(tomb[i]>tomb[j])
{
int tmp = tomb[i];
tomb[i] = tomb[j];
tomb[j] = tmp;
}
}
}
}
int main()
{
int x;
int * A;
beker(x);
A = new int [x];
feltolt(x,A);
kiir(x,A);
csere(x,A);
delete [] A;
return 0;
}Ez egy egyszeru cseres rendezes akar lenni. Igazabol ki kellene mostmar csak iratni, de mivel 'tomb[i]'-t iratok ki ezert ugyanugy irja ki az ertekeket ahogy a bemenetre adom. Szoval hogy kellene kiirni a cserevel elrendezett elemeket?
[ Szerkesztve ]
-
-
félisten
válasz !wannabe #455 üzenetére
Hali!
Az a hiba, hogy a csere rutinban a belső ciklusodnál az "i" változót használod meg növeled, nem pedig a "j"-t... for(int j=i+1; i<elemszam; i++)
javítsd erre: for(int j=i+1; j<elemszam; j++)
És természetesen a csere függvény után újra irasd ki a tömböt...
Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
!wannabe
tag
válasz Fire/SOUL/CD #458 üzenetére
martonx
Eclipse-nél van ez a helyzet. Pont azt írom, hogy ez a bajom az eclipse-el. DevC-t használtam régen. Viszont azóta rákaptam a codeblocks-ra. Itt a suliba eclipse-t erőltetik, azonban kis programokat kell még írni ebben a félévben, olyanokat amiben az előbb segítettetek. Ehhez gedit-et használok és terminal-ban fordítok. Ma volt az első gyakorlat és eclipse ott is jobbra-balra fagyott. Nem fogom a kisZH-mat abban írni egészen biztos vagyok benne. Ha egy nagyobb projectet kell összehozni biztos hasznos meg kódkiegészítő stb....de éppen írtam aggregátornak is, hogy eclipse-ben kisZH-t írni olyan mint ágyúval hangyára lőni!Fire
Köszi a segítséget, még annyit kellett, hogy a külső ciklust ne '1' től hanem '0'-tól indítsam mivel így a tömb 0. elemét mindig úgyhagyta. A lényeg, hogy most működik[ Szerkesztve ]
-
amargo
addikt
válasz !wannabe #459 üzenetére
eclipse fagyogat?
Gondolom a hozzáértők beállítgatnak mindenfélét, és amire Te oda kerülsz a gépelé, egy romhalmaz fogad.
Ha a CodeBlocks vagy DEV C++ hozzá hasonlítod, az számomra elég erős. Pedig nem orvérzésig használom, de szoktam használni több könyvtárral, az elején, amíg nem tudtam felkonfigurálni, nekem is gondjaim voltak (ez tény)..Inkább tedd ki pendrive-ra és onnan fejlesz (ha nincs laptop).
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
!wannabe
tag
Bizony ez is benne van, hogy előttünk van egy csoport és nyomkodnak észnélkül
Nem az eclipse-hez hasonlítom a DEVC-t. Látom a különbséget, martonx kérdezte, hogy kipróbáltam-e már a DEVC-t. Arra válaszoltam, hogy igen és CB-t is használtam.
A notimon van eclipse az előző progit is abban írtam. Néha itt is fagy bár most úgytűnik jó napja van.
Egyébként miért baj, ha konzolbol fordítok?[ Szerkesztve ]
-
amargo
addikt
válasz !wannabe #463 üzenetére
eclipse c/c++ 80M nem kell telepíteni.
Semmit nem konfiguráltam és simán lefordult egy helloworld.Pendrive-ra is kirakhatod, talán kicsit lassabb lesz(vagy, amíg használod felmásolod a gépre), de legalább hordozható.
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
vgergo
aktív tag
Olyan problémám van, hogy az alábbi kódot lefordítom és
test.exe ertek futtatom
, akkor az output a következő:
ertek
YYYYYY#include <iostream>
int main (int argc, char *argv[]) {
cout <<argv[1]<<"\n";
if (argv[1]=="ertek"){cout<<"XXXXXX";}else{cout<<"YYYYYY";}
}Azt nem értem, hogy mikor kiíratom az argv[1]-t ertek-t kapom, de mikor ellenőrzöm akkor nem egyenlő ertek-kel.
Gondolom ezzel is ugyanaz a probléma, mint az előzővel.
switch (argv[1])
{
case "ertek0" :cout <<"X";break;
case "ertek1" :cout <<"C";break;
case "ertek2" :cout <<"V";break;
default :cout <<"Egyeb";break;}
}[ Szerkesztve ]
-
!wannabe
tag
-
doc
nagyúr
válasz !wannabe #470 üzenetére
nem igazan a hagyomanyos megoldas, es foleg nem attekintheto...
szoval:
parameterkent atadod ugye a tomb elemeinek szamat, es egy mutatot a tombredouble* legkisebb=tomb; -> a 'legkisebb' egy double tipusra mutato mutato, indulaskor a tomb cimere mutat, ami a tomb legelso eleme
utana egy ciklusban vegigjarja a tomb osszes elemet a masodiktol (1. index) kezdve
a tomb valtozo a tomb legelejere mutat, ha hozzaadsz egy szamot, akkor az annyiadik elemet kapod meg, tehat a tomb+5 az 5. indexu (sorban a hatodik) elemre mutat
ha a (tomb+i) cimen levo ertek kisebb mint amire a legkisebb mutat, akkor a 'legkisebb' valtozo a megfelelo elemre fog mutatni (tomb+i)a vegen meg visszaadja azt az erteket, amire a 'legkisebb' nevu mutato mutat
azert igy lenyegesen olvashatobb:
double min(int elemszam, double tomb[])
{
double legkisebb=tomb[0];
for(int i=1; i<elemszam; i++)
if(tomb[i]<legkisebb) legkisebb=tomb[i];
return legkisebb;
} -
martonx
veterán
válasz !wannabe #473 üzenetére
Ez egy C++ topik, ahol mint a címe is mutatja nyelv specifikus kérdésekkel kellene foglalkozni (pl. miért nem fordul le ez vagy az, hogy kellene C++-ban megoldani ilyen vagy olyan problémát sb...
A sorbarendezés az egyik legtriviálisabb algoritmus, és te azt kérted, hogy magyarázzuk el, hogy működik. Egy egyszerű algoritmus magyarázatának SZVSZ semmi köze a C++-hoz, még ha éppen C++-ban is kell alkalmaznod az adott algoritmust.Én kérek elnézést!
-
vampire_girl
csendes tag
Sziasztok, nagyon nagy szuksegem lenne c++ segitsegre egy iskolai feladathoz, sok mulik rajta.
Tehat egy "teszt" c++ programot kell megirjak , ami abbol all hogy minden kerdes utan van egy a,b,c valasz. A kerdesem az lenne, hogy milyen utasitassal irhatnam fel azt hogy ha pl az a-t valasztjuk akkor 3-al nojjon az osszeg szama, ha b-t valasszuk akkor 2-vel es ha c-t akkor 1-el.Nagyon fontos lenne, elore is halas vagyok ha esetleg vki segiteni tunda
redshine
-
martonx
veterán
válasz vampire_girl #477 üzenetére
Megszóltak, hogy túl sokat fikázom a kérdéseket, úgyhogy ezt a kérdést inkább nem kommentálom...
Én kérek elnézést!
-
vampire_girl
csendes tag
bocs h segitseget mertem kerni , ugylatom tul nagyfej vagy ahhoz hogy segits, nha azert kosz h nem kommentaltad
redshine
-
D@ni88
addikt
hali, kicsit tanácstalan vagyok, annyi gondom lenne hogy egy egységmátrixot kéne létrehozni, dinamikus tömbbel.
erre jutottam. esetleg valaki?#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int max1 =20;
setlocale(LC_ALL,"hun");
cout << "Adja meg az egységmátrix szélességét: ";
cin >> max1;
if (max1<2||max1>20)
{
cerr<<"Megadott paraméterek nem felelnek meg!"<<endl;
exit(1);
}
else
{
int **n =new int * [max1];
int k=1;
for (int i=0; i<max1; ++i)
{
for (int j=0; j<max1; j++)
{
if(i==j)
{
n[i][j]=1;
}
else
{n[i][j]=0;}
}
k++;
}
for (int i=0; i<max1; ++i)
{
for (int j=0; j<max1; j++)
{
cout.width(3);
cout << n[i][j];
}
cout << endl<<endl;
}
}
}tudom hogy a végére még kell a tömb helyének a felszabadítása, de ez lényegtelen... mert nem csinál semmit, ki akar lépni...
-
amargo
addikt
int **n =new int * [max1];
Itt létrehoztál egy mutatókból álló tömböt egy mutatóra.
Azaz, a benne lévő mutatók területét még nem foglaltad le, hanem csak a mutatókból álló tömb méretét.Ami hiányzik, hogy lefoglald a benne lévő mutatóknak is a helyét.
Tovább nem néztem, de ez mindenképpen szükséges, hogy ne csak a vakvilágnak próbálj meg értéket adniTovábbá egy hasznos tanács ha a mélységével együtt struktúrába rendeled.
Egyszerűbb lesz kezelned.“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
amargo
addikt
Egy lehetséges megoldást, azért beteszek. De örülök, hogy rájöttél. Ha csak beraktam volna a megoldást, nehezebben értenéd meg. De lehet tévedek.
struct matrix
{
int** pData;
int dom;
};
//---------------------------------------------------------------------
bool GetMatrix(matrix &pMatrix)
{
if( pMatrix.dom == 0 && pMatrix.dom == INT_MAX) //hiba a mátrix létrehozásánál, elég az alapokhoz.
{
return false;
}
pMatrix.pData = new int*[ pMatrix.dom ];
for(int i = 0; i < pMatrix.dom; i++)
{
pMatrix.pData[ i ] = new int[ pMatrix.dom ];
}
return true;
}//bool GetMatrix(matrix &pMatrix)“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
#82189568
törölt tag
Sziasztok! Most kezdtem el C++ t tanulni eddig Pascalt tanultam, de fel kell zárkóznom, mert a 2. félévtől új suliba járok.
Tippek, trükkök , hogy hol , miből , lehetőleg sok példával végigvezetve lehet hatékonyan megtanulni a nyelvet ??#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>int main()
{
clrscr();
int nr=0;cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] n";
cin >> nr;switch(nr)
{
case 1:
cout << "Te a jelek szerint FIU vagy! n";
break;
case 2:
cout << "Te a jelek szerint LANY vagy! n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est n";
break;
}
system("PAUSE");
return 0;
}Annyi lenne a kérdésem még, hogy hogyan lehetne megoldani, hogyha helytelen értéket kap a program akkor újra kérdezze és ne lépjen ki a programból ??
Köszönöm !
-
gygabor88
tag
válasz #82189568 #485 üzenetére
www.freeprogrammingresources.com oldalról kiindulva találhatsz rengeteg cpp példakódot. Könyvnek Bjarne Stroustrup féle A C++ programozási nyelv című könyv az, ami mindent tartalmaz. Ebből nem egyszerű dolog tanulni, nem is kezdőknek írták, de ha keresel mellette példakódokat, akkor menni fog.
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
int main()
{
clrscr();
int nr=0;
bool ujra;
do {
ujra = false;
cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] n";
cin >> nr;
switch(nr)
{
case 1:
cout << "Te a jelek szerint FIU vagy! n";
break;
case 2:
cout << "Te a jelek szerint LANY vagy! n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est n";
ujra = true;
break;
}
}while(ujra);
system("PAUSE");
return 0;
} -
gygabor88
tag
válasz #82189568 #487 üzenetére
Ez a borland környezet már nagyon régi, bool típust nem ismeri fel a compiler. Használj helyette codeblocks környezetet. Conio már nem támogatott, include-nál meg nem használjuk a .h kiterjesztést ha alap könyvtárakat használunk. Mivel iostreamet használsz felesleges a stdio. Itt a működő kód:
#include <iostream>
using namespace std;
int main()
{
int nr=0;
bool ujra;
do {
ujra = false;
cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] n";
cin >> nr;
switch(nr)
{
case 1:
cout << "Te a jelek szerint FIU vagy! n";
break;
case 2:
cout << "Te a jelek szerint LANY vagy! n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est n";
ujra = true;
break;
}
}while(ujra);
system("PAUSE");
return 0;
}[ Szerkesztve ]
-
#82189568
törölt tag
válasz gygabor88 #488 üzenetére
Köszönöm szépen a segítségedet, nagyon királyul működik, de valahogy Nekem a Borland C fekszik a legjobban ott tudom , hogy mit hova merre meddig, de biztos amit ajánlottál is jó, csak nem tudtam megfelelően használni, most 5.02es Borlandot tettem fel, ez már grafikus felületű.
Megmutattam ma ugyan ezt a kérdést a tanáromnak, de hirtelen Ő sem jött rá, hogy a régi Borlandba , hogy lehetne megoldani.
Ilyen úton próbáltunk elindulni :
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>int main()
{
clrscr();
char nr;do {
cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] \n";
cin >> nr;
}while( (0<nr) && (nr<3) );switch(nr){
case '1':
cout << "Te a jelek szerint FIU vagy! \n";
break;
case '2':
cout << "Te a jelek szerint LANY vagy! \n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est \n";
}
system("PAUSE");
return 0;
} -
martonx
veterán
-
PazsitZ
addikt
Miért szükséges ehhez mindenképp bool típus ?
Jó, jó elvileg úgy szebb, de egy sima integer is megteszi...#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
char nr;
int x;
int main()
{
clrscr();
do{
do{
cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] \n";
cin >> nr;
}while( (0<nr) && (nr<3) );
x=0;
switch(nr)
{
case '1':
cout << "Te a jelek szerint FIU vagy! \n";
break;
case '2':
cout << "Te a jelek szerint LANY vagy! \n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est \n";
x=1;
break;
}
}while(x!=0);
system("PAUSE");
return 0;
}Mondjuk még új változó sem szükséges jelen esetben szvsz:
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
char nr;
int main()
{
clrscr();
do{
do{
cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] \n";
cin >> nr;
}while( (0<nr) && (nr<3) );
switch(nr)
{
case '1':
cout << "Te a jelek szerint FIU vagy! \n";
break;
case '2':
cout << "Te a jelek szerint LANY vagy! \n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est \n";
break;
}
}while(nr!='1' && nr!='2');
system("PAUSE");
return 0;
}[ Szerkesztve ]
- http://pazsitz.hu -
-
Psych0
őstag
Sziasztok!
Hogy kéne visual c++ alatt fullscreenbe váltani?
Desktop resolution kell, tehát nincs changedisplaysettings.gondoltam nyitok egy ablakot, aminek a style-ja WS_POPUP
DE, ha visszaváltok windowed módra(eddig is az volt csak desktop felbontású keretnélküli magasprioritású), akkor oda az aero. viszont ha nem 1680*1050-es ablakot csinálok, akkor nem bántja az aerot.ha WS_POPUPWINDOW a style. akkor minden ok, csak van egy egy pixel széles fehér keretem, ami gáz. ha megpróbálom az adjustwindowrect-tel eltávolítani a keretet, akkor csak az alsó és a jobb tűnik el.
hogy lehetne ezt megoldani?
nem vagyok hivatásos programozó, ezért elnézést, ha hülyeség."As an online discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches 1."
-
icespeak
csendes tag
Hi mindenki. Szerintetek mi lehet az alábbi kóddal a probléma?
/*
10. A Föld felszínének egy vonala mentén egyenlő távolságonként megmértük a terep tengerszint
feletti magasságát, és a mért értékeket egy vektorban tároljuk. Hány darab hegycsúcs van a
mérési sorozatban?
*/
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
int Megszamol(const vector<int> t, int &c);
bool ReadFromFile(const string &fname, vector<int> &t);
void ReadFromKeyboard(vector<int> &t);
int Read12(const string &msg, const string &errormsg);
int main(int argc, char *argv[])
{
char ch;
do{
// Adatok beolvasása
vector<int> t;
bool file_ok = true;
// Adatbevitel módja
int v;
if(argc>1) v = 1;
else{
cout << "Az adatbeolvasás módja:"<< endl
<< " SZÖVEGES FÁJL(1)"<< endl
<< " BILLENTYŰZET (2)"<< endl;
v = Read12("Válasszon: ","Csak 1 vagy 2 közül választhat!");
}
// Beolvasás fájlból
string fname;
switch(v)
{
case 1 :
if(argc<=1){
cout << "Adja meg a szöveges fájl nevét: ";
cin >> fname;
}
else fname = argv[1];
file_ok = ReadFromFile(fname, t);
if(!file_ok && argc>1) {
char ch; cin >> ch;
exit(1);
}
break;
case 2 :
cout << "Adjon meg mérési értékeket! Kilépés: quit \n";
ReadFromKeyboard(t);
break;
}
// Kiíratás
if(file_ok)
{
if(Megszamol(c)) cout << "Hegycsúcsok száma:" << c << endl;
else cout << "Nincs hegycsúcs"<< endl;
cout << endl << "Futtassam újra? (I/N) "; cin >> ch;
}
}while(ch!='n' && ch!='N');
return 0;
}
//Feladat: 1-es vagy 2-es beolvasása
//Tevékenység: Billentyűzetről kizárólag két szám, az 1-es vagy a 2-es valamelyikét fogadja el
// más adatot nem
//Bemenő adat: string msg - a beolvasás előtt megjelenítendő üzenet
// string error - hibás adat beírásakor megjelenítendő üzenet
//Kimenő adat: int v - 1-es vagy 2-es szám (visszatérési értékként)
int Read12(const string &msg, const string &errormsg)
{
int n;
bool hiba = true;
do{
cout << msg;
string str;
cin >> str;
n = atoi(str.c_str());
hiba = (n==0 && str!="0") || n<1 || n>2;
if(hiba) cout << errormsg << endl;
}while(hiba);
return n;
}
//Feladat: Integereket tartalmazó tömb (vector) feltöltése billentyűzetről
//Tevékenység: Billentyűzetről olvas be egymás után integereket és helyezi el őket egy vektorban
// addig, amíg a "quit" szót nem írjuk.
//Bemenő adat: -
//Kimenő adat: vector<int> t
void ReadFromKeyboard(vector<int> &t)
{
int meres;
cin >> meres;
while(meres!="quit"){
t.push_back(meres);
cin >> meres;
if (meres < 0){
meres = 0;
}
}
}
//Feladat: Integereket tartalmazó vektor feltöltése szöveges állományból
//Tevékenység: Megnyitja a megadott szöveges állományt (sikertelen kísérlet esetén hibát jelez)
// majd a fájlból egymás után beolvassa az összes elválasztójelekkel határolt számot
// és elhelyezi azokat egy vektor-ban
//Bemenő adat: string fname - szöveges állomány neve
//Kimenő adat: vector <int> t
// bool ok - sikerült-e az állomány megnyitása (visszatérési értékként)
bool ReadFromFile(const string &fname, vector<int> &t)
{
ifstream x(fname.c_str());
if(x.fail()){
cout << "Hibás fájlnév!"<< endl;
return false;
}
int meres;
x >> meres;
while(!x.eof()){
t.push_back(meres);
x >> meres;
if (meres<0){
meres = 0;
}
}
return true;
}
int Megszamol(const vector<int> t, int &c){
int c=0;
for(int i=0; i<(int)t.size(); i++){
if(i<i+1 || i+1>i+2){
c=c+1;
}
}
return c;
}[ Szerkesztve ]
-
Jester01
veterán
válasz icespeak #494 üzenetére
1. hiányzik az using namespace std; (fordítófüggő, de ez a helyes)
2. a Megszamol függvénynek felesleges a c paraméter, a t viszont lehet referencia, ha már úgyis const.
3. a Megszamol függvény hívásakor a t vektort viszont illene átadni
4. a Megszamol függvényben a vektor elemeit kellene hasonlítani. Gondolom a hegycsúcs akkor hegycsúcs ha magasabb a tőle jobbra és a tőle balra lévő értéknél is. Tehát feltehetőleg || helyett && feltétel kell, és a szélső elemek nem lehetnek csúcsok.
5. a ReadFromKeyboard függvényben int változóba olvasol be, azt nem lehet összehasonlítani a "quit" stringgel. Vagy olvass stringbe mint a Read12 függvényben, vagy használj más kilépési feltételt. Az én verziómban negatív szám beírásával lehet kilépni.--- t.cpp.orig 2009-03-11 15:04:31.000000000 +0100
+++ t.cpp 2009-03-11 15:18:08.000000000 +0100
@@ -3,7 +3,9 @@
#include <sstream>
#include <vector>
-int Megszamol(const vector<int> t, int &c);
+using namespace std;
+
+int Megszamol(const vector<int> &t);
bool ReadFromFile(const string &fname, vector<int> &t);
void ReadFromKeyboard(vector<int> &t);
int Read12(const string &msg, const string &errormsg);
@@ -52,7 +54,8 @@
// Kiíratás
if(file_ok)
{
- if(Megszamol(c)) cout << "Hegycsúcsok száma:" << c << endl;
+ int c = Megszamol(t);
+ if(c > 0) cout << "Hegycsúcsok száma:" << c << endl;
else cout << "Nincs hegycsúcs"<< endl;
cout << endl << "Futtassam újra? (I/N) "; cin >> ch;
@@ -92,12 +95,9 @@
{
int meres;
cin >> meres;
- while(meres!="quit"){
+ while(meres > 0){
t.push_back(meres);
cin >> meres;
- if (meres < 0){
- meres = 0;
- }
}
}
@@ -128,10 +128,10 @@
return true;
}
-int Megszamol(const vector<int> t, int &c){
+int Megszamol(const vector<int> &t){
int c=0;
- for(int i=0; i<(int)t.size(); i++){
- if(i<i+1 || i+1>i+2){
+ for(int i=0; i<(int)t.size()-1; i++){
+ if(t[i]<t[i+1] && t[i+1]>t[i+2]){
c=c+1;
}
}[ Szerkesztve ]
Jester
-
Capricornus
aktív tag
Sziasztok!
A probléma a következő: egy graf. felületű progit kell win xp alatt vezérelni automatikusan, ezt megoldottam virtuális billentyű lenyomásokkal (keybd_event), viszont ez csak akkor működik, ha aktív a kérdéses ablak.
Most próbálok a progiba beépíteni egy olyan megoldást, hogy PID alapján mindig előtérbe hozza és aktívvá tegye az ablakot, arra az esetre, ha valami miatt lekerülne róla a fókusz.
Egy ismerősöm küldött egy forrást amit próbálok beépíteni a progimba, de ez csak félig jó, mert előtérbe hozza az ablakot, de utána nem aktiválja
Ha valakinek van valami ötlete, vagy javaslta azt szivesen fogadom. a Forrás:#include <windows.h>
#include <stdio.h>
#include <iostream>using namespace std;
int procId;
HWND windowHandle;
BOOL CALLBACK MyEnumProc(HWND hWnd, LPARAM lParam)
{
DWORD processId;
GetWindowThreadProcessId(hWnd,&processId);
int id = processId;
if(procId == id)
{
windowHandle = hWnd;
return FALSE;
}
return TRUE;
}int main(int argc, char **argv) {
if (argc < 2) {
cout << "Használat: filenév processId" << endl;
} else {
procId = atoi(argv[1]);
EnumWindows(MyEnumProc,0);
if (windowHandle != NULL) {
SetForegroundWindow(windowHandle);
SetActiveWindow(windowHandle);
}
}
}Per aspera ad astra!
-
martonx
veterán
válasz Capricornus #498 üzenetére
Szia!
Én a helyedben inkább hook-olnám a keyboardot, egy dll hívással. Már ha jól értettem a problémádat, és billentyűzettel vezéreled a felületet.
Én kérek elnézést!
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Eredeti dizájnnal tér vissza idén a Nokia 225 4G
- Xbox tulajok OFF topicja
- Elektromos autók - motorok
- Azonnali alaplapos kérdések órája
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Mini-ITX
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Óra topik
- Győr és környéke adok-veszek-beszélgetek
- Vicces képek
- További aktív témák...
- ZOTAC GeForce GTX 1080 AMP Edition 8GB GDDR5X 256bit
- Filmes gép gyűjtemény
- Nikon D5000 + AF-S DX NIKKOR 18-105 mm
- Bontatlan Seagate & Western Digital HDD-k 3TB - 12TB -ig - Számla + Garancia, Ár alatt! BeszámítOK!
- DJI Mini 4 pro FMC drón - 3 akku, RC2 táv, 2 táska, Filterek, 2025. decemberig garancia, DJI Care