Permalänk
Medlem

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

Permalänk
Medlem

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

Permalänk
Hedersmedlem

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.

Permalänk
Medlem

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

system("pause");

Permalänk
Medlem
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.

Visa signatur

"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å :)

Permalänk
Medlem

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

Tack för alla svar!

Permalänk

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

Permalänk
Medlem

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

Visa signatur

"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å :)

Permalänk
Hedersmedlem
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.

Permalänk
Medlem

Tack så mycket för alla svar!!

Permalänk
Medlem

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.

Permalänk
Medlem

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.

Permalänk
Medlem

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