Programiranje u C++-u - pitanja i odgovori izdvojena tema

poruka: 7.285
|
čitano: 1.713.091
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
TracerCPP kaže...

EnumProcesses je samo brojanje. Npr;

 

Ako se baš želi naći handle procesa onda to ide preko caption-a (FindWindow).

Znam što je EnumProcesses, ali je napomenuo i da ne želi ići preko window captiona, nego pomoću imena izvršne datoteke, a za to mora izlistati sve procese i onda provjeriti ime izvršne datoteke svakoga od njih, kako bi npr dobio sve ie.exe procese.

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
rustweaver kaže...

Č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

15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
LFS racer kaže...

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.

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

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

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
LFS racer kaže...

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:

http://msdn.microsoft.com/en-us/library/dd375731.aspx

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
Poruka je uređivana zadnji put pon 5.11.2012 1:59 (rustweaver).
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

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

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
LFS racer kaže...

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š...

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
Poruka je uređivana zadnji put pon 5.11.2012 1:48 (rustweaver).
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

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

 
0 0 hvala 0
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

Pozdrav,

 

Zanima me kako bi izgledao kod kojim bi smo brisali postojeću binarnu datoteku ?

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

Brisati datoteku s diska ili samo njen sadržaj?

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

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 ?

14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

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);

 

 

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
14 godina
offline
Programiranje u C++-u - pitanja i odgovori

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).

Samo Hajduk živi vječno ! (ili dok im ne iskljuce struju))
Poruka je uređivana zadnji put pon 5.11.2012 16:11 (FuzzyBrain).
Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

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.

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
PillowoFevil kaže...

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.

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

Jedna napomena:

Godina je prijestupna ako je djeljiva sa 4, a nije djeljiva sa 100 ili ako je djeljiva sa 400, dakle ova jest.

 
1 0 hvala 0
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
PillowoFevil kaže...

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.

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

#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;
}

 

{#}

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
Poruka je uređivana zadnji put uto 6.11.2012 18:13 (TracerCPP).
Moj PC  
4 0 hvala 0
17 godina
offline
Programiranje u C++-u - pitanja i odgovori

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;
}

Poruka je uređivana zadnji put sri 7.11.2012 16:06 (Floki).
 
2 0 hvala 0
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

On nigdje u zadatku to ne pominje ;)

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
 
0 0 hvala 0
17 godina
offline
Re: Programiranje u C++-u - pitanja i odgovori
Intelovac123 kaže...

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.

Poruka je uređivana zadnji put sri 7.11.2012 15:56 (Floki).
14 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
Floki kaže...
Intelovac123 kaže...

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 ;)

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
13 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori

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 ?

 
0 0 hvala 0
17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
CovjekToplomjer kaže...

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.

The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. --Damian Conway
Poruka je uređivana zadnji put sri 7.11.2012 17:34 (1domagoj1).
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

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

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
CovjekToplomjer kaže...

 

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.

The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. --Damian Conway
14 godina
offline
Programiranje u C++-u - pitanja i odgovori

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 

Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori

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...

17 godina
neaktivan
offline
Re: Programiranje u C++-u - pitanja i odgovori
CovjekToplomjer kaže...

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.

The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. --Damian Conway
14 godina
neaktivan
offline
Programiranje u C++-u - pitanja i odgovori
Radili smo danas na vjezbama klase i objekte, bio nam je u vjezbi primjer sa racunanjem radijusa, zanima me zasto se kod klasa/objekata ne moze staviti negativna vrijednost broja za radijus, to diktira objekt ili ?
Zašto mi sluši private i public znam otprilike po imenu skuziti ali zašto će mi npr. private zašto da držim nešto pod time? Za šta mi služe konstruktor i destruktor?
Je li klasa kao neki opis objekta ili ako mi možete samo objasniti razliku ukratko između klase i objekta jer mi je to sve svježe pa da nebi dalje brkao ta dva pojma? Ne trebate mi stavljati nešto iz knjiga nego riječima kako ste vi shvatili?
Hvala.
 
0 0 hvala 0
E-mail:
Lozinka:
 
vrh stranice