Čekaj malo, ti želiš dobiti handle od nekog procesa koji je već pokrenut?
Da, ne pokrećem JA process, samo hoću handle preko imena processa
Čekaj malo, ti želiš dobiti handle od nekog procesa koji je već pokrenut?
Da, ne pokrećem JA process, samo hoću handle preko imena processa
Da, ne pokrećem JA process, samo hoću handle preko imena processa
Dobio si primjer izlistanja svih procesa pomoću EnumProcesses, sada ti preostaje jednostavan strcmp sa imenima iz liste dok ne pronađeš sve procese čije ime odgovara tvojem kriteriju.
kako bi napravio da recimo kad pritisnem tipku na tipkovnici uvećam jednu varijablu, a kada stisnem drugu onda smanjim?
recimo imam jedan koji koji se izvršava u beskonačnoj petlji, i na svakom početku petlje da čitam ako je stisnuta koja tipka, tako da bi mogao izvesti dalje potrebne radnje.
isto tako ako nije stisnuta niti jedan tipka netreba ništa napraviti. npr. kad bi koristio scanf(); program bi mi samo stao dok ne stisnem neku tipku i enter
recimo imam jedan koji koji se izvršava u beskonačnoj petlji, i na svakom početku petlje da čitam ako je stisnuta koja tipka, tako da bi mogao izvesti dalje potrebne radnje.
isto tako ako nije stisnuta niti jedan tipka netreba ništa napraviti. npr. kad bi koristio scanf(); program bi mi samo stao dok ne stisnem neku tipku i enter
Treba ti non blocking input, C i C++ u svojoj standardnoj biblioteci nemaju takvu funkciju, dakle moraš si pomoći sa drugim API-jima/bibliotekama. Recimo jedan od načina koristeći windows console API:
#include <windows.h>
#include <stdio.h>
#define BUFFER_SIZE 64
int get_key()
{
HANDLE hInput=GetStdHandle(STD_INPUT_HANDLE);
DWORD events=0, input_size=BUFFER_SIZE;
INPUT_RECORD input_record[BUFFER_SIZE];
int n;
ReadConsoleInput(hInput, input_record, input_size, &events);
for (n=0; n<events; n++)
{
if (input_record[n].EventType==KEY_EVENT)
if (input_record[n].Event.KeyEvent.bKeyDown)
return input_record[n].Event.KeyEvent.wVirtualKeyCode;
}
return 0;
}
int main()
{
int key, quit=0;
while (!quit)
{
key=get_key();
switch (key)
{
case VK_LEFT:
printf("lijeva strjelica pritisnuta\n");
break;
case VK_RIGHT:
printf("desna strjelica pritisnuta\n");
break;
case VK_ESCAPE:
printf("escape pritisnut, izlazim...\n");
quit=1;
break;
}
}
return 0;
}
Evo ti i lista key kodova:
uspio sma to napravit sa
if(kbhit())
{
x = getch();
....
}
i sve lijepo radi u testnom programu, no kad ubacim u svoj di mi je to potrebno dobivam :
|In function 'void text(void*)':|
'kbhit' was not declared in this scope|
'getch' was not declared in this scope|
||=== Build finished: 2 errors, 0 warnings ===|
koristim codeblocks
uspio sma to napravit sa
if(kbhit())
{
x = getch();
kbhit i getch su deklarirani u conio.h headeru koji moraš dodati... Pazi to su zastarjele i nestandardne funkcije tako da podrška kompajlera nije zagarantirana. GCC ih podržava u verziji koju koristim (4.6.1), ali nikad ne znaš...
kada sam u testnom programu kompajlirao to bio mi je potreban samo windows.h zbog Sleep(1);
a kad sam stavio u moj program treba i conio.h
čudno :S thanks
Pozdrav,
Zanima me kako bi izgledao kod kojim bi smo brisali postojeću binarnu datoteku ?
Brisati datoteku s diska ili samo njen sadržaj?
Cijelu s diska.
Možemo li je samo overwriteati, tj napraviti datoteku s istim imenom ali drugim sadrzajem,hoce li se onda stari sadrzaj izgubiti ?
Brisanje sa diska:
http://www.cplusplus.com/reference/clibrary/cstdio/remove/
a ako želiš samo izbrisati sadržaj onda možeš ovako:
FILE* f;
f = fopen("dat.txt", "w");
fclose(f);
Imam pitanje. Ne tice se C-a nego Fortrana ali ne sumnjam da i ovoj temi ima netko tko zna. Kako da npr napisem a(1), tj. htio bih da mi ta jedinica bude dolje desno kao index uz a. Googlao sam ali mi samo izbaci sintaksu gdje nemogu pronaci bas ovaj slucaj. Thnx
EDIT Evo nasao sam...koji sam panj
, bas se i pise tako a(1).
Cao ljudi ja sam mladi programer izgubljen u vremenu i internetu, pa bih vas molio ako mozete rjesiti ovaj zadatak, ili objasniti.
dakle zadatak glasi: "Napišite program koji traži od korisnika da upiše redni broj bilo kojeg dana u godini (1-365), a program mu treba ispisati koji je to datum."
Hvala.
Cao ljudi ja sam mladi programer izgubljen u vremenu i internetu, pa bih vas molio ako mozete rjesiti ovaj zadatak, ili objasniti.
dakle zadatak glasi: "Napišite program koji traži od korisnika da upiše redni broj bilo kojeg dana u godini (1-365), a program mu treba ispisati koji je to datum."
#include <stdio.h>
char mjeseci[12]={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int main()
{
int dan=244, n;
for (n=0; n<12 && dan>mjeseci[n]; n++)
dan-=mjeseci[n];
printf("datum je: %d.%d.\n", dan, n+1);
getchar();
return 0;
}
To je dovoljno da dobiješ neku ideju što raditi, zadatak ti ne kanim rješavati u potpunosti.
Jedna napomena:
Godina je prijestupna ako je djeljiva sa 4, a nije djeljiva sa 100 ili ako je djeljiva sa 400, dakle ova jest.
Cao ljudi ja sam mladi programer izgubljen u vremenu i internetu, pa bih vas molio ako mozete rjesiti ovaj zadatak, ili objasniti.
dakle zadatak glasi: "Napišite program koji traži od korisnika da upiše redni broj bilo kojeg dana u godini (1-365), a program mu treba ispisati koji je to datum."
Hvala.
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
if ((n>=1)&& (n<=31))
{
cout<<n<<". januar"<<endl;
}
if ((n>=32)&&(n<=59))
{
cout<<n-31<<". februar"<<endl;
}
if ((n>=60)&& (n<=90))
{
cout<<n-59<<". mart"<<endl;
}
if ((n>=91)&&(n<=120))
{
cout<<n-90<<". april"<<endl;
}
if ((n>=121)&&(n<=151))
{
cout<<n-120<<". maj"<<endl;
}
if ((n>=152)&&(n<=181))
{
cout<<n-151<<". jun"<<endl;
}
if ((n>=182)&&(n<=212))
{
cout<<n-181<<". jul"<<endl;
}
if ((n>=213)&&(n<=243))
{
cout<<n-212<<". avgust"<<endl;
}
if ((n>=244)&&(n<=273))
{
cout<<n-243<<". septembar"<<endl;
}
if ((n>=274)&&(n<=304))
{
cout<<n-273<<". oktobar"<<endl;
}
if ((n>=305)&&(n<=334))
{
cout<<n-304<<". novembar"<<endl;
}
if ((n>=335)&&(n<=365))
{
cout<<n-334<<". decembar"<<endl;
}
return 0;
}
Najjednostavnije.
#include <iostream>
using namespace std;
int main(){
int pom = 0, dan = 1, i, j;
int mjesec[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
for(i = 365, j = 0; i > 0; i--, j++){
pom += mjesec[j];
if(dan <= pom){
cout << -(pom - dan - mjesec[j]) << "." << j + 1;
break;
}
}
return 0;
}

Taj redni broj dana možemo promatrati kao datum napisan u tom obliku, idemo sa logikom da njega postupno smajujemo do broja dana koji stanu u mjesec, a povećavamo mjesece i godine (već ima ta logika u rustweaverovom programu)
Da bi uzeli prijestupne godine u obzir unosimo i godinu, odnosno točku 1.1. godina od koje računamo broj dana. Program nije ograničen unosom i on mi kaže da će od 1.1. 2012 proći 10 tisuća dana na dan 18.05. 2039.
Kad unesem 365 i godinu 2012, izbacuje 30.12.2012 - jer je prijestupna.
#include<iostream>
using namespace std;
int Prijestupna(int godina)
{
if((godina%4 == 0 && godina%100 != 0) || godina%400 == 0) return 1;
return 0;
}
int main()
{
int mjeseci[] = {31,28,31,30,31,30,31,31,30,31,30,31};
int dodano[] = {0,1,0,0,0,0,0,0,0,0,0,0};
int dan, mjesec = 0, godina;
cin>> dan;
cin>> godina;
for (; dan > 365 + Prijestupna(godina); godina++)
{
dan -= 365 + Prijestupna(godina);
}
for (;dan > mjeseci[mjesec] + Prijestupna(godina)*dodano[mjesec] ; mjesec++)
{
dan -= mjeseci[mjesec] + dodano[mjesec] * Prijestupna(godina);
}
cout<< dan << "." << mjesec + 1 << "." << godina << endl;
return 0;
}
On nigdje u zadatku to ne pominje ;)
On nigdje u zadatku to ne pominje ;)
Pa nek vrti do 365, who cares, bitna je logika programa, uostalom rustweaver je već primjenio ovu logiku, ja sam je samo proširio sa prijestupnom godinom i uveo godine u izračun, a da si vidio logiku u rustweaverovom programu, ne bi onoliko uvjeta proglasio za najjednostavnije rješenje.
Svatko tko je rješavao onaj školski zadatak da na osnovu unosa datuma, mjeseca i godine izbaci ime dana zna o čem pričam, broje se dani od 1.1.1900 baš na ovaj način, i to zahvaljujući tom da je tada bio ponedjeljak.
On nigdje u zadatku to ne pominje ;)
Pa nek vrti do 365, who cares, bitna je logika programa, uostalom rustweaver je već primjenio ovu logiku, ja sam je samo proširio sa prijestupnom godinom i uveo godine u izračun, a da si vidio logiku u rustweaverovom programu, ne bi onoliko uvjeta proglasio za najjednostavnije rješenje.
Svatko tko je rješavao onaj školski zadatak da na osnovu unosa datuma, mjeseca i godine izbaci ime dana zna o čem pričam, broje se dani od 1.1.1900 baš na ovaj način, i to zahvaljujući tom da je tada bio ponedjeljak.
Cek, rekao sam da je najjednostavnije rijesenje za njega,posto on to ne zna uraditi mislim da ono sa if moze lako skontati ;)
Pozdrav,
Dev cpp mi konstanto javlja poruku :
"Permission denied
ld returned 1 exit status "
Ponekad uspije sve iskompajlirat i runati a ponekad ne(uglavnom odmah nakon sto izvrsim neku promjenu u kodu).
Zna li tko do čega to može biti ?
Pozdrav,
Dev cpp mi konstanto javlja poruku :
"Permission denied
ld returned 1 exit status "
Ponekad uspije sve iskompajlirat i runati a ponekad ne(uglavnom odmah nakon sto izvrsim neku promjenu u kodu).
Zna li tko do čega to može biti ?
Koji OS? Linker ti se zali. Vjerojatno pokusavas pisati u read-only file ili pristupiti fileu za koji nemas ovlasti.
Daj c/p-aj compile log.
W7.
Kompajler kaze sljedece :
Compiler: Default compiler
Executing g++.exe...
g++.exe "C:\Users\XXX\Desktop\vjezba4\drugi_pokusaj_4.cpp" -o "C:\Users\XXX\Desktop\vjezba4\drugi_pokusaj_4.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\Dev-Cpp\Bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot open output file C:\Users\XXX\Desktop\vjezba4\drugi_pokusaj_4.exe: Permission denied
collect2: ld returned 1 exit status
Execution terminated
W7.
Kompajler kaze sljedece :
Compiler: Default compiler
Executing g++.exe...
g++.exe "C:\Users\XXX\Desktop\vjezba4\drugi_pokusaj_4.cpp" -o "C:\Users\XXX\Desktop\vjezba4\drugi_pokusaj_4.exe" -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"C:\Dev-Cpp\include\c++\3.4.2\backward" -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"C:\Dev-Cpp\include\c++\3.4.2" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\Dev-Cpp\Bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot open output file C:\Users\XXX\Desktop\vjezba4\drugi_pokusaj_4.exe: Permission denied
collect2: ld returned 1 exit status
Execution terminated
Ok, jel mozda u samom kodu pokusavas pisati u neki file koji je read only? Ili mozda pokusavas kreirati neki file u rootu (C:\)
Jel ti je mozda drugi_pokusaj_4.exe vec otprije pokrenut (pogledaj u procese), Unlocker tu moze pomoci.
Drugo ne znam sto bi moglo biti.
Pozdrav društvo, trebao bih pomoć.
Da li bi mi itko mogao pomoći sa zadatkom. Trebam unesti 5 realnih brojeva i trebam njihovu aposlutnu vrijednost. Kada dobim njihovu apsolutnu vrijednost moram odrediti koji je najveći i koji je najmanji broj te ih pomnožiti, a ako su dva broja ista onda se uzme onaj broj koji je prvi upisan. Hvala Vam
Daleko sam od roota, nemam "muda" kopat tamo a ako je drugi_pokusaj4.exe vec pokrenut onda nebih mogao ni kompajlat kod, mislim ova greska se samo ponekad javlja i to redovito kad radim s datotekama 
Hvala na trudu al ne znam sto cu...
Daleko sam od roota, nemam "muda" kopat tamo a ako je drugi_pokusaj4.exe vec pokrenut onda nebih mogao ni kompajlat kod, mislim ova greska se samo ponekad javlja i to redovito kad radim s datotekama 
Hvala na trudu al ne znam sto cu...
Znaci ne pojavljuje se inace, samo kad radis s datotekama? Onda je ocito u tome problem.
U svoj objekt možeš staviti što god želiš tj. kako to definiraš u samoj klasi. Dakle, do objekta je.
Jedno od svojstava C++ je skrivanje podataka tj. ne dopušta se direkta izmjena nekog podatka jer to za sobom može povlačiti i neke druge izmjene u programu koje bi programer eventualno zaboravio ili sl. Zato se često takvi podaci stavljaju kao privatni, a funkcije koje im pristupaju kao javne (npr. get i set funkcije):
class A{
private:
int n;
public:
int getN() { return n }
void setN(int x) { n = x }
};
Za inicijalizaciju i deinicijalizaciju objekta. Konstruktor se pokreće kad se objekt stvara a destruktor kad se uništava. Najlakše je to prikazati dinamičkom instancom klase:
class A{
public:
A(){
cout << "Objekt stvoren!\n";
}
~A(){
cout << "Objekt uništen!\n";
}
};
int main(){
A *p;
p = new A(); // poziv konstruktora
delete p; // poziv destruktora
return 0;
}
Tu je sad puno teorije koja uključuje preopterećenje konstruktor, rad konstruktora i destruktora s statičkim objektima itd..
Klasa je opis - ne zauzima mjesto u memoriji. Objekt zauzima mjesto u memoriji.