Trädvy Permalänk
Medlem
Plats
Karlskrona
Registrerad
Mar 2006

C++ problem

Hejsan. Jag är ganska ny gällande programmeringen.

Har en liten fråga. Jag har skrivit ett väldigt simpelt program i C++,
och kompilerat det i Dev C++. Så fort jag kör .exe filen så startar den progrmamet i "dos" mijlön. och stänger det DIREKT. du hinner bara se att det blinkar till. Någon som skulle kunna hjälpa mig?

Här är ze code.

#include <iostream> using namespace std; int main () { cout << "Hej"; return 0; }

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007

That's the point. Kör det fråm kommandoprompten istället.

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Apr 2004

Eller lägg till något som får programmet att vänta; till exempel en inmatning:

#include <iostream> using namespace std; int main () { cout << "Hej"; int i; cin >> i; return 0; }

För övrigt är dev-c++ rätt antik vid det här laget; testa visual c++ express om du inte har gjort det.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2005

Det du också kan göra är att starta pause...

system("pause");

Trädvy Permalänk
Medlem
Plats
I mitt cluster
Registrerad
Okt 2008
Citat:

Ursprungligen inskrivet av DraXula
Det du också kan göra är att starta pause...

system("pause");

Och i framtiden om du vill programmera för lite mer cross-plattform så finns det ett liknande command, fast som inte är windows specifikt. getch() heter den och väntar helt enkelt tills man tryckt ner en tangent, sen fortsätter programmet.

Edit:
Var ett tag sedan jag programmerade i C++, men om jag inte helt missminner mig måste man köra #include <conio.h> för att getch() ska fungera. Det är ett standard bibliotek så det behöver du inte oroa dig för att inte hitta.

"Riktig fakta? kolla ut genom fönstret på snön och all jävlighet där har du riktig fakta, eller de som går där i kylan, idioter, det är riktig fakta" -- Ett fyllo på bussen, ganska trevlig ändå :)

Trädvy Permalänk
Medlem
Plats
Karlskrona
Registrerad
Mar 2006

Var i koden ska jag lägga in system("pause"); ?

Tack för alla svar!

Trädvy Permalänk
Medlem
Plats
Laholm
Registrerad
Okt 2005

#include <iostream> int main () { std::cout << "Hejsan" << std::endl; std::cin.get(); }

ASP.NET programmerare i C#
Twitter: http://www.twitter.com/hagbarddenstore

Trädvy Permalänk
Medlem
Plats
I mitt cluster
Registrerad
Okt 2008

Precis efter cout-satsen, annars så pausar den innan den och då är det ju inte riktigt värt det
Måste vara innan return 0; dock, annars så avslutas programmet innan den kommer dit

"Riktig fakta? kolla ut genom fönstret på snön och all jävlighet där har du riktig fakta, eller de som går där i kylan, idioter, det är riktig fakta" -- Ett fyllo på bussen, ganska trevlig ändå :)

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Apr 2004
Citat:

Ursprungligen inskrivet av shenjin
Var ett tag sedan jag programmerade i C++, men om jag inte helt missminner mig måste man köra #include <conio.h> för att getch() ska fungera. Det är ett standard bibliotek så det behöver du inte oroa dig för att inte hitta.

Nja, conio.h finns väl endast på windowssystem? I linux kan man dock använda till exempel ncurses istället.

Trädvy Permalänk
Medlem
Plats
Karlskrona
Registrerad
Mar 2006

Tack så mycket för alla svar!!

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2005

Re: C++ problem

#include <iostream> using namespace std; int main () { cout << "Hej"; system("pause"); return 0; }

Då kommer den starta programmet, skriva ut "Hej", pausa, returnera 0 och avsluta.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007

system("pause"); och getch(); är dåliga plattformsspecifika lösningar. std::cin.get(); är en bra lösning.
Men det är oftast så att man vill att program man kör i ett skal ska avslutas, utan att vänta på en knapptryckning.

Trädvy Permalänk
Medlem
Registrerad
Jan 2005

Re: Re: C++ problem

Citat:

Ursprungligen inskrivet av DraXula

[...]

Då kommer den starta programmet, skriva ut "Hej", pausa, returnera 0 och avsluta.

Det verkar inte så:

cic (~/dev): cat tmp.cpp #include <iostream> #include <cstdlib> // behövde lägga till denna för att filen ska kompilera using namespace std; int main () { cout << "Hej"; system("pause"); return 0; } cic (~/dev): g++ tmp.cpp cic (~/dev): ./a.out sh: pause: command not found Hej