Dev c++

C/C++

22 svar · 1 119 visningar · startad av eas

Medlem sedan sep. 2001269 inlägg
Trådstart#1

Jag laddade ner DEV C++ idag!

Installationen gick fint men när jag testkörde upptäckte jag till min förskräckelse att mitt fina program stängde av sig när det hade körts klart!

Det gillar inte jag efter som jag förtfarande är på den nivån då man skriver lite kod, kompilerar och ser vad som händer.

Vad kan jag göra för att förhindra det, så att jag kan kolla på resultatet av koden jag kört?
:q :q :q :q :q :q :q :q :q :q :q :q :q :q :q

Medlem sedan mars 20007 896 inlägg
#2

Testa med att lägga till:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
cin.get ();

I slutet av din funktion. ( Innan du avslutar den. )

Medlem sedan sep. 2001269 inlägg
#3

Det funkade inte!

Går det inte att göra nån inställning i programmet får att fixxa problemet?

Medlem sedan juni 20008 205 inlägg
#4

Näpp. Det beror på att när programmet tar slut, så ser operativsystemet ingen anledning att ha kvar fönstret uppe. Om cin.get() (eller motsvarande) inte funkar, vilket det borde göra, så prova att köra programmet från DOS-prompten. Att det inte funkar kan tyda på ett fel som leder till exekveringsavbrott...

Medlem sedan mars 2001344 inlägg
#5

dev-c++ är värdelöst.. får massa felmeddelanden fram när jag skriver

getch();

Medlem sedan feb. 20002 300 inlägg
#6

Eller så kan det ju bero på att getch inte tillhör c-standarden utan är Borlands påhitt... :e

Medlem sedan juni 200010 432 inlägg
#7

PhOrPhEr>>
:e

eas >>
Men cin.get() ska iaf fungera... men om du petat in nån cin strax innan så KAN det hända att man får peta in cin.get() 2 ggr... om det ligger en vagnretur kvar i strömmen. Alternativt om det finns nåt debug-läge i dev-c++ som gör att man kan peta in breakpoints (stannar upp programmet) precis på sista raden innan return 0 i main. Fast det gäller ju medans du jobbar i IDEn..

Medlem sedan feb. 20002 300 inlägg
#8

Eller så använder man funktionen fflush med stdin som inargument.

Dvs. fflush(stdin); för att tömma inströmmen.

Använder man C++ så har ostream en metod flush() som man kan använda också.
Typ cout << flush;

Medlem sedan dec. 19995 874 inlägg
#9

Jag har provat nu, men det vill inte fungera.

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
#include <iostream.h>

main()
{
cout << "test" << endl;
return 0;
cout << flush;
cin.get();
cin.get();
}

vad göra?

Medlem sedan feb. 20002 300 inlägg
#10

Ta bort "return 0;".

return används när du vill att en funktion ska "avslutas" och returnera ett värde. I det här fallet avslutas main och 0 returneras till operativsystemet.

Medlem sedan aug. 2000207 inlägg
#11

PhOrPhEr vi anävnder enbart Borland på vår skola, och i alla övningar avnänder man getch(); :o

Medlem sedan feb. 20011 517 inlägg
#12

tittade i den här tråden häromdagen och la lite saker på minnet.
tog själv hem dev c++ och satte mig just för att pilla lite - då samma sak hände mig - som jag då lätt löste genom att titta in här och ta råden som givits;
cin.get(); två ggr. :)
toppen!

Medlem sedan feb. 20002 300 inlägg
#13

Damion:

Det är givetvis inte fel att använda getch(). Jag brukar också använda det ibland.
Ville bara poängtera att det inte tillhör standarden så man kan inte förvänta sig att det ska fungera om man vill kompilera med en annan kompilator.

Medlem sedan juni 200010 432 inlägg
#14

...sen är det väl inte så svårt att köra sitt lilla program i prompten ist ;)

Tycker att PhOrPhEr hade ett bra tips med fflush(), annars :)

Medlem sedan sep. 2001269 inlägg
#15

Man kan använda getch() om man inkluderar en header-fil.

tror det är conio.h eller nåt sånt...

om jag bara skriver cin>>i; strax innan return 0; förskuter jag ju problemet så jag kan se utskriften av programmet.

Medlem sedan feb. 2001124 inlägg
#16

Använder själv DEV C++ och var också med om detta problemet i början. Kollade dock i hjälpfilen där det stod hur man skulle göra. Inkludera stdlib.h och lägg till system("PAUSE"); på raden innan return 0; så ska det nog fungera. ;)

Medlem sedan sep. 2001269 inlägg
#17

Är det förresten nån som vet varför det finns parametrar i definitionen av main?

int main(int argc, char *argv[])

:q :q :q :q :q

Medlem sedan feb. 20002 300 inlägg
#18

Därför att du ska kunna ta in parametrar när du startar programmet?

argc - Integer som innehåller antalet argument

argv - Dubbelpekare till argumenten som skickas in. *argv[1] är första argumentet osv.

Medlem sedan sep. 2001269 inlägg
#19

Hur kan man skicka argument till funktionen main då?
Man anropar den ju aldrig i koden.

Medlem sedan okt. 20013 217 inlägg
#20

Operativet kör ju funktionen main då programmet startas.

// BeatBox

253 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)