Dobry den,
teraz som zacal citat o programovani v C++ - 1. lekce.....hned prvy program mi nefunguje...nainstaloval som si Dev-C++ a skopiroval som si ten program...nevyhadzovalo chybu len program spustilo a vyplo a nic mi nevypisalo...ziaden vysledok...moze mat problem s vistou ale kde robim chybu???
Dakujem
Fórum › C / C++
Problem s C++
no pokud je to console application tak dej na konec čekání na stisk klávesy nebo něco takovýho jinak ti to problikne. nebo to spusť z přík. řádky nebo nastav ve vlastnostech jake je zatžítko po ukončení zavrít tak ho oddělej.
je to program v terminalu.. a terminal neceka.. takze to ze to nevidis neznamena ze to nefunguje...
jsou v zasade 3 moznosti jak to vyresit:
1) spustit to v terminalu (tj. spustis cmd.exe a v nem spustis program..) vysledek se vypise, program skonci ale vysledek zustane protoze se cmd samo nezavre
2) cekat na vstup z klavesnice na konci programu - tam je ale docela problem, pokud cokoliv zustane ve fronte od klavesnice
3) pod windows existuje programek "pause.exe", ktery jednoduse vypise hlasku ze ceka na stisk libovolne klavesy...
takze se spusti pred koncem system("pause.exe"); (muze se vynechat .exe)
Sergei napsal:
To Lordest : Mám pocit, že tohle nefunguje jen na odkliknutí enterem, že musíš zadat nějaký libovolný znak a enter, navíc je zde problém, který popisuje KIIV ve svém 2. bodě.
ja hovorim ze to je iba jedna z moznosti :),
urcite uprednostnujem viac system("PAUSE"); ako povedal KIIV.
To Lordest : A nejlíp nepoužívat ani jeden z těchto dvou, ale spouštět program v terminálu. :-)
To Kejhal: Na stisk entru čeká pouze cin.get() (2x proto, že může být ve frontě na vstupu entr), return se dává jako označení návratové hodnoty, tady pro funkci main, 0 znamená, že program proběhl bez problému, jiné čísla značí chybu.
Ačkoli je system("PAUSE") velice oblíbený, tak je to prasárna za kterou by se měl člověk stydět. Za prvé funguje pouze pod Windows a za druhé je velice náročný na systémové zdroje, protože pokaždé když zavoláte system("PAUSE") tak se váš program pozastaví, zavolá se OS, otevře se OS shell, OS najde svůj PAUSE, alokuje pamět pro jeho spuštění, spustí ho, pak pamět zase dealokuje, vyjede z OS shellu a vrátí se do vašeho programu. Naprosto zbytečná a náročná věc. Mě se líbí toto řešení:
void MyPause(char[]);
int main()
{
//nějaký veleužitečný kód
MyPause("Press Enter to continue...");
}
void MyPause(char msg[])
{
cout << msg;
while(getchar() != '\n');
}
To NOclipus : to je sice pravda, ale zase tak casto se to nedela..
Krom toho ja radsi programy, kde nic takovyho neni.. se to pak neda pouzit s presmerovanim.
V linuxu sem nikdy nic takovyho nemusel resit.. tam proste bezi prikazovka a vysledek zustane
Ano a většina lidí si bohužel z naprosto neznámých důvodů oblíbila DevCpp, přestože např. Code::Blocks to řeší samo bez nějakých super vychytávek v programu.
ondra.holub napsal:
Ano a většina lidí si bohužel z naprosto neznámých důvodů oblíbila DevCpp, přestože např. Code::Blocks to řeší samo bez nějakých super vychytávek v programu.
no aby som bol uprimny pouzivam Dev-Cpp tiez ktory som dostal na CD ku knihe. K ostatnym neviem ,mozno si ho ludia oblubili kvoli tomu ze je znamy a ze je free. O code::blocks som zial nepocul, asi je to jedna z pricin aj pre ostatnych.. urcite vyskusam, ak je free..
To Lordest : Code::Blocks je free, je ke stáhnutí na www.codeblocks.org Doporučuji nainstalovat tu verzi, která je ke stažení a pak to přeplácnou nightly buildem (dá se k němu dostat přes odkaz forums).
Výhoda codeblocks je i v tom, že podporuje více překladačů. Např. gcc, Visual C/C++, digital mars, ... Je to jednak užitečné při psaní kódu, který má být maximálně přenositelný, ale hodí se to např. i ve chvíli, kdy překladač vyhazuje nějakou záhadnou chybu a programátor nemůže zjistit, co se tomu překladači vlastně nelíbí. Tak to zkusím přeložit jiným překladačem, ten tu chybu formuluje jinak a je nějaká šance, že mně to dojde.
Další výhoda je, že codeblocks lze bez problémů provozovat i na Linuxu. Takže stejný projekt (pokud je multiplatformě napsaný) lze v klidu překládat i na více platformách.
Čau pravděpodobně potřebuješ toto:
přidej si knihovnu na začátek
#include <conio.h>
a na konec před return si dej toto:
getch();
Než se dokončí vlastní main tak před returnem si to počká na zmáčknutí jakéhokoliv tlačítka.
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
Moderátoři diskuze