Avatar billede nickwan Nybegynder
08. januar 2010 - 21:43 Der er 5 kommentarer og
2 løsninger

cmd lukker selv om std::cin.get()

hej eksperter jeg er gået igang med at læarer at programmere i min fritid på egen hånd og læser en bog der hedder:C++ grundbog MEN jeg er nu nået lidt ind i bogen og der er en kode der ser sådan her ud:

#include "stdafx.h"

int main()
{
    int foersteTal;
    int andetTal;
    std::cout<<"\nIndtast venligst et stort tal:";
    std::cin >>foersteTal;
    std::cout<<"\nIndatst venligst et mindre tal:";
    std::cin >>andetTal;
    if (foersteTal > andetTal)
        std::cout<<"tak\n";
    else
        std::cout<<"Hov! det andet tal er ikke mindre!\n";
    std::cin.get();
    return 0;
}

mit problem er at cmd lukker efter den har udført opgen selv om jeg har sat std::cin.get(); ind og har prøvet lidt forskelligt og kan ikke lige finde på en løsning? på horhånd tak :)
Avatar billede jagdos Nybegynder
08. januar 2010 - 22:06 #1
Den lukker selv cmd når der er færdig, så prøv at sætte
system ("pause");
ind lige før du returner.
Avatar billede arne_v Ekspert
08. januar 2010 - 22:07 #2
cin og dens input buffer kan godt drille noget naar du tidliger ei programmet laeser fra cin.

Proev og erstat:

std::cin.get();

med:

    std::string dummy;
    getline(std::cin, dummy);

eller:

    std::cin.clear();
    std::cin.ignore(1000, '\n');
    std::cin.get();
Avatar billede nickwan Nybegynder
08. januar 2010 - 22:14 #3
mange tak i to :) de bægge virkede:) må indrømme at system ("pause"); nok er lidt mere enkel :) jeg skal kun bruge der for at jeg lige som kan se hvad der sker og forstå det:)

arne_v kan du fortælle mig hvad det er
    std::cin.clear();
    std::cin.ignore(1000, '\n');
    std::cin.get();

gør? altså jeg troede std::cin.clear();
bare clearede cin og så kunne man indsætte std::cin.get(); men det virkede ikke. men hvis man satte det hele ind virkede det:) hvis i begge smider et svar så kan i dele pointene :)

og 1000 tak for hjælpen :)
Avatar billede jagdos Nybegynder
08. januar 2010 - 22:32 #4
svar ^^
Avatar billede arne_v Ekspert
08. januar 2010 - 23:14 #5
svar
Avatar billede arne_v Ekspert
08. januar 2010 - 23:14 #6
clear fjerner evt. fejlflag

ignore læser til og med linieskift fra tidligere input
Avatar billede nickwan Nybegynder
08. januar 2010 - 23:22 #7
okay mange tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester