Gå til innhold

Lukker konsollvinduet seg med en gang? Les her


Anbefalte innlegg

  • 7 måneder senere...
Videoannonse
Annonse

Hva skjer? Vinduet lukker seg med en gang jeg har skrevet inn tallet og trykket enter. Altså koden fungerer, men vinduet lukker seg med en gang selv om jeg har skrevet inn cin.get(); og return 0;.

Jeg bruker Visual C++ 2007. En ting jeg ikke helt vet er denne: #include "stadafx.h"

 

#include "stdafx.h"

// operating with variables
#include <iostream>

int main ()
{

using namespace std;

int randomnumber;
cout << "Type in a number to generate a random one: ";
cin >> randomnumber;
cout << "Your new random number is ";
randomnumber = randomnumber * 3.14; 
cout << randomnumber;

// terminate the program:
cin.get();
return 0;
}

En liten ting til er: hvordan kan jeg finne ut hva som er galt med koden min om jeg har skrevet noe feil i koden? Slik at jeg trykker på en knapp som markerer hva jeg mangler/har skrevet feil med en gul (eller annen farge) markeringstusj-lignende greie i Microsoft Visual C++?

 

Edit: Jeg skrev cin.ignore(); under cout << randomnumber;, og da ordnet alt seg. Hvorfor må jeg ha med cin.ignore() for at vinduet ikke skal lukke seg? Jeg prøvde å skrive enda en cout << "blablabla"; bak randomnumber; uten cin.ignore(); men vinduet lukket seg da også. Hvorfor må jeg ha med cin.ignore(); inne i koden (har det noe å si hvor den befinner seg i koden?) slik at vinduet ikke lukker seg etter jeg har skrevet inn et "random number" ?

 

Her er den nye koden (ryddet opp i også).

 

#include "stdafx.h"

#include <iostream>

int main ()
{

using namespace std;

int randomnumber;
cout << "Type in a number to generate a random one: " ;
cin >> randomnumber;
cout << endl;
cout << "Your new random number is: ";
randomnumber = randomnumber * 3.14 ; 
cout << randomnumber ;
cin.ignore();
cout << ", " << endl;
cout << "what do you want to do with it?" << endl;

cin.get();
return 0;
}

 

 

Men jeg vil fortsatt vite det med hvordan man kan bruke Visual C++ til å finne feil for deg i kodevinduet, slik at man enkelt kan rette dette opp.

Endret av Requi
Lenke til kommentar

Litt usikker på hva du spør om.

For å finne feil du får under kompilering er det ingen automatisk måte å finne ut hvor feilen ligger, men feilmeldingene du får under kompilering sier hvor kompilering stopper og det pleier gi gode hint om hvor feilen ligger.

 

For å finne feil i et program som er kompilert må du bruke debug funksjonen i vs. Funksjonene man bruker for å debugger er nok til å fylle bøker, men for enkel feilsøking kan du jo merke en linje i koden så trykke F9 for så starte programmet. Når programmet har kommet til linjen du har merket vil det stopppe og du kan lese variabler og andre fiffie ting om statusen til programmet ditt.

 

Lykke til

Lenke til kommentar

Den enkleste løsningen er å kjøre cin.get to ganger.

 

int main(int argc, char** argv)
{
 cin.get();
 cin.get();
 return 0;
}

 

Error list er skrudd av som default (av en eller annen grunn)

Trykk på View->Other Windows->Error List

Trykk på både Errors og Warnings (da dukker både errors og warnings opp)

 

Det er ingen umiddelbar feilvisning i Visual C++ slik som i C# og Visual Basic, da C++ syntaks er en del mer komplisert å parse (eller kanskje bare C++ teamet er slappere på dette enn VB og C# teamene)

Lenke til kommentar
  • 9 måneder senere...
  • 5 måneder senere...

conio.h er vel det en kaller deprekert. Den skal helst ikke brukes, ettersom den ikke er egentlig så veldig standard. Faktisk ikke i det hele tatt, og er spesifikk egentlig for MS-DOS. Det er ikke engang noe som er laget av Microsoft, og funksjonaliteten varierer fra kompilator til kompilator. Den er ikke vanlig på UNIX systemer.

 

conio.h is a C header file used in old MS-DOS compilers to create text user interfaces. It is not described in The C Programming Language book, and it is not part of the C standard library, ISO C nor is it required by POSIX.
Lenke til kommentar
  • 2 år senere...

Det aller lettest er jo å rett å slett høyreklikke på prosjektet->property->configuration properties->linker->system og der finner du Subsystem øverst, velg Console fra nedtrekksmenyen.

En permanent løsning for hvert prosjekt.

 

Å vente på tastetrykk eller bruke kode for å fryse vinduet er dårlig skikk og vane :)

Lenke til kommentar

Det aller lettest er jo å rett å slett høyreklikke på prosjektet->property->configuration properties->linker->system og der finner du Subsystem øverst, velg Console fra nedtrekksmenyen.

En permanent løsning for hvert prosjekt.

 

Å vente på tastetrykk eller bruke kode for å fryse vinduet er dårlig skikk og vane :)

Og hva skal dette rette? Et console program i Visual Studio har nødvendigvis Console satt som subsystem fra før? Ihvertfall tidligere utgaver av Visual Studio ville ikke pause programmet etter det avsluttet med unntak av dersom du kjørte det uten å attache debuggeren (Shift+F5).

 

Er dette endret i 2012?

Lenke til kommentar

Og hva skal dette rette? Et console program i Visual Studio har nødvendigvis Console satt som subsystem fra før? Ihvertfall tidligere utgaver av Visual Studio ville ikke pause programmet etter det avsluttet med unntak av dersom du kjørte det uten å attache debuggeren (Shift+F5).

 

Er dette endret i 2012?

 

Er hvertfall slik i 2010 og 2012.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...