Chci se zeptat jestli se da v C++ napsat kod ktery by ,nebo jak by asi mel vypadat, abych tim kodem spustil nejakej program co mam na ploše, jako kdyz na klavesnici zmacknu enter nebo pouziju myš, nebo jde mi o to jak se da do zdrojoveho kodu napsat tlacitko enter aby se aktivovalo, poradte prosim.
Fórum › C / C++
Potřebuji poradit
Asi jsem ůplně nepochopil dotaz, ale pokud jde o spuštěné applikace, tak je k dispozici WinAPI fce ShellExecute() - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.asp?A to zachytávání kláves je otázkou smyčky zpráv. Pokud ti šlo o něco jiného tak sorry.
Taky sem nak nepochopil dotaz... zkus to lip vysvetlit ;-)
Ja bych taky potreboval odpoved nevim presne jak to mam udelat a kompilator mi hazi chybu.
Potrebuju proste otevrit soubor jako kdyby se na nej poklepalo 2x normalne ve WIN
treba mam soubor ping.bat a potrebuju ho otevrit.
zkousel sem:
#include<shellapi>
....
ShellExecute(handle, "open", <C:\ping.bat>, NULL, NULL, SW_SHOWNORMAL);
a nejde win api nedelam a reseni pro ciste c++ sem zatim nenasel :((
diky vela moc jestli nekdo odpovi
bbtrash napsal:
Ja bych taky potreboval odpoved nevim presne jak to mam udelat a kompilator mi hazi chybu.
Potrebuju proste otevrit soubor jako kdyby se na nej poklepalo 2x normalne ve WIN
treba mam soubor ping.bat a potrebuju ho otevrit.
zkousel sem:
#include<shellapi>
....
ShellExecute(handle, "open", <C:\ping.bat>, NULL, NULL, SW_SHOWNORMAL);
a nejde win api nedelam a reseni pro ciste c++ sem zatim nenasel :((
diky vela moc jestli nekdo odpovi
ShellExecute(0, "open", "C:\\ping.bat", 0, 0, SW_SHOWNORMAL);
Prvni parametr je handle k rodicovskemu oknu(pokud neni zadate NULL)
Druhy paramaetr je opearce ktera se ma provest
Treti je cestak ke spousteni souboru. Pokud je cesta uvedena v promenne PATH neni potreba uvadet celou cestu. Takze pokud chcete pingnout nejaky server, tak staci zadat pouze ping.
Ctvrty parametr jsou parametry predavane spoustene aplikaci. A tady znovu, pokud chcete pingnout napr. Seznam.cz, tak staci zapsat www.seznam.cz.
Patym parametrem je cesta k defaultnimu(k prohledavanemu) adresari.
A posledni parametr specifikuje, jak bude program zobrazen.
Vice na msdn.
Jinak jeste doplnim pro priklad pingu serveru Seznam.cz(jen proto,ze vidim vasi snahu o spusteni ping)
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
int main(int argc, char *argv[])
{
ShellExecute(0, "open", "ping", "www.seznam.cz", 0, SW_SHOWNORMAL);
system("PAUSE");
return EXIT_SUCCESS;
}
pokud jde o prikaz ping, tak neni nic jednodussiho nez napsat
#include <iostream>
int main(){
system("ping www.seznam.cz");
system("pause");
return 0;
}
A pokud de o otevreni souboru tak pouzij funkci ShellExecute() jak ji tu nadherne popsal Jura_ (musis includnout windows.h ...) ;-)
zdarec mam takovy problem s tim to kodem :
#include <iostream>
using namespace std;
int main ()
{
cout << "Zadej mezni cislo M :n";
int m;
cin >> m;
if (m<0)
{
m = m*(-1);
cout <<"Cislo, ktere jste zadali bylo prevedeno na kladne.n";
}
if (m==0)
{
cout << "Toto cislo nebubu resit.n";
cin.get();
cin.get();
exit (1);
}
int tc=1;
int d=1;
int v;
int poc=0;
do
{
do
{
v = tc%d;
if (v==0)
{
poc=poc+d;
}
/*cout << d << " " << tc<< " "<<poc<<" "<< v<<"n";*/
d++;
}while (tc>d);
if ((poc-tc)==tc)
{
cout << "Cislo ["<<tc<<"]<< je dokonale.n";
}
poc=0;
tc++;
}while (m>=tc);
cin.get();
cin.get();
return 0;
}
Je to program, ktery ma najit vsechna dokonale cisla do cisla M(mezni cislo). (dokonale cislo je cislo napr 6 ... soucet jeho delitelu je roven cislu samotnemu 6= 3 + 2 +1 pochopitelne se nepocita samotny 6 ...dalsim dokonalym cislem je napr 28) No ale k veci program ma vzdy vzit testovaci cislo tc a pak ho videlit vsemi deliteli, ktery jsou mensi nez on sam a pak zvysit tc o jedna a tak dal a vypisovat jenom dokonala cisla ... to se, ale nedeje proc ??
Diky za odpoved
Zde je tvuj opraveny kod:
#include <iostream>
using namespace std;
int main ()
{
cout << "Zadej mezni cislo M :n";
int m;
cin >> m;
if (m<0)
{
m = m*(-1);
cout <<"Cislo, ktere jste zadali bylo prevedeno na kladne.n";
}
if (m==0)
{
cout << "Toto cislo nebubu resit.n";
cin.get();
cin.get();
exit (1);
}
int tc=1;
int d=1;
int poc=0;
do
{
d = 1; // zapomnel jsi nastavit promennou d zpet na vychozi hodnotu
do
{
if (!(tc % d))
{
poc=poc+d;
}
d++;
}while (d < tc);
if (poc==tc)
{
cout << "Cislo ["<<tc<<"]<< je dokonale.n";
}
poc=0;
tc++;
}while (m>tc);
cin.get();
cin.get();
return 0;
}
Nebyl bych to ja, kdybych zase neco nezkritizoval. Ale neber to nijak osobne, jen se pro priste vyvaruj pouziti cyklu do{}while - neda se to cist. Radeji pouzij for, sam pak zjistis jeho vyhodu. Krome toho tento problem by se dal elegantne vyresit prave pomoci for:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
const int M = 100;
for(int i=1; i <= M ; ++i)
{
int sum = 0;
for(int j = 1; j < i; ++j)
if(!(i % j))
sum += j;
printf("%d %s perfect number.n", i, (sum == i)?"is":"isn't");
}
system("PAUSE");
return EXIT_SUCCESS;
}
Myslim, ze rozdil je patrny na prvni pohled.
Díky za odpověď a hned mám další dotaz nejde mi cin.get ani cin.getline :
#include <iostream> // i když tam nechám jen #include tak to nejde
using namespace std;
int main ()
{
cout <<"Zadej cislo pro prevedeni: n";
int cislo[5]; // pole
cin.get(cislo, 5);
cout << cislo[1];
cout << cislo[4];
cin.get();
cin.get();
return 0;
}
A hned připojím další dotaz jak se dá v C++ nahradit odmocnina.
Díky za odpověď
S.Salomon napsal:
Díky za odpověď a hned mám další dotaz nejde mi cin.get ani cin.getline :
#include <iostream> // i když tam nechám jen #include tak to nejde
using namespace std;
int main ()
{
cout <<"Zadej cislo pro prevedeni: n";
int cislo[5]; // pole
cin.get(cislo, 5);
cout << cislo[1];
cout << cislo[4];
cin.get();
cin.get();
return 0;
}
A hned připojím další dotaz jak se dá v C++ nahradit odmocnina.
Díky za odpověď.
Mno, vidim, ze by bylo nejlepsi, kdybys obetoval vice casu samostudiu. Jinak nic jako cin.get(int*, streamsize) neexistuje. Totiz existuji metody pouze pro char, char* . Tim padem ti nezbyva nic jineho nez je nacist rucne, tedy pres cyklus. A co se tyce odmocniny, tak si tedkom vubec nejsem jisty, co myslis tim nahradit? V C/C++ na to neexistuje zadny symbol, ale funkce sqrt, coz je druha odmocnina z cisla, a jestlize myslis jinou odmocninu, nez je prave sqrt, tak pouzij pow(cislo, 1.0/cislo_odmocniny).
Hmm to jsem nějak přehlédl no další věc, která mi nedá spát: Jak postupně inkrementovat čísla prvkou u pole :
int a=0;
int vysledek[50];
.
.
.
int vysledek[a++]....; // to samozřejmě nejde
Jako vždy díky za odpověď.
S.Salomon napsal:
Hmm to jsem nějak přehlídl no další věc, která mi nedá spát: Jak postupně inkrementovat čísla prvkou u pole :
?
int a=0;
int vysledek[50];
.
.
.
int vysledek[a++]....; // to samozřejmě nejde
Jako vždy díky za odpověď.
Naprosto stejne jako jakoukoliv promennou:
int pole[50];
++pole[0];
.
.
.
++pole[49];
Tak už jsem přišel na to jak to inkrementovat(aspoň myslím), ale nevím jak tomu přiřadit hodnotu např.:
#include <iostream>
using namespace std;
int main ()
{
cout <<"Zadej cislo pro prevedeni: n";
int cislo;
cin >> cislo;
int zbytek=0;
int polohovac;
int vysledky[polohovac];
for (polohovac=0;cislo>=1;polohovac++)
{
zbytek=cislo%2;
vysledek[polohovac] = zbytek; // nejde
vysledek[polohovac] = {zbytek}; // nejde
cislo= cislo/2;
};
.
.
.
DZO
Chci poradit ja vytvorim nejakej program v dev C++ normalne ulozim vsecko a kdyz ho chci spustit tak ten program jen problikne a vubec se nezobrazi ,nevim cim to muze byt. Fakt diky jestli mi poradite ?:P?kdyztak mi to napiste na z.ondra@email.cz dik moc
Tohle se tu řešilo už x-krát
http://programujte.com/forum.php?akce=topic&Top_ID=1254
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Potřebuji poradit — založil Tomáš
C++ 3. lekce.. potrebuji poradit — založil blaztar
Ahoj potřebuji poradit s GD knihovnou — založil martin
Sem začátečník a potřebuji poradit — založil tomas999
Potřebuji poradit - Výběr největší čísla ze 4 čísel — založil MaxDJs
Moderátoři diskuze