Forum: cin.get(); c++ problem

Forum huvudsida -> Programmering -> cin.get(); c++ problem

Sidor: 1

Till botten

Xedow 06:21 - 18:e April 2006 | Post #1
Medlem
Inlägg: 1


Skicka PM
Hejsan!

Har ett litet problem...
Jag kör dev C++, men det skiter i "Tryck på en tangent för att forsätta" -meddelandet. Så jag letade runt lite och snappade upp att man skulle skriva "cin.get();" i slutet, eller rättare sagt, före return. Vet nån hur man fixar det så är jag tacksam...

(Jag verkar bättre på C++ än vad jag är)
Smiley

//Xedow

-------------------------
Ingen signatur!



Celeron 06:53 - 18:e April 2006 | Post #2
Medlem
Inlägg: 418


Skicka PM
Om du använder cin tidigare i programmet måste du lägga till cin.ignore(1,'\n'); innan cin.get();:
  1.  
  2. //kod...
  3. cin.ignore(1,'\n');
  4. cin.get();
  5. return 0;
  6. }


-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



Fragmad 16:55 - 18:e April 2006 | Post #3
Medlem
Inlägg: 13


Skicka PM
Du kan också skippa cin.get och skriva system("pause") i slutet på din kod.

-------------------------
There goes the neigborhood



Celeron 18:27 - 18:e April 2006 | Post #4
Medlem
Inlägg: 418


Skicka PM
Men det är mycket fulare och funkar bara i Windows. Finns ingen fördel med det!

-------------------------
Det viktigaste är att ha roligt! Har ny hemsida: http://www.freewebs.com/cpperik/



Wazaa 18:49 - 18:e April 2006 | Post #5
Medlem
Inlägg: 3


Skicka PM
I och för sig tror jag inte att portabilitet är något man bryr sig om på denna nivå, men det är bra att veta Smiley Senare gör man förmodligen en loop som går tills programmet slutar, vilket man förresten kan göra här också. Då måste man stänga av programmet med krysset uppe i hörnet eller vänta tills användaren gör något som man bestämt ska avsluta programmet. Man kan också skriva Pause(10000); så väntar programmet i 10 sekunder innan det stängs av. Fast dessa metoder är nog inget att bry sig om på dessa program, Pause(millisekunder); funkar även det bara i windows och är väl i allmänhet inget att hänga i julgranen.

En fördel med system("pause") kanske finns, man behöver bara skriva 2 rader istället för en om man har använt en cin innan, och ehm... då blir programmet mindre när man kompilerat det Smiley


Daniel

-------------------------
"As a rule, I never touch anything more sophisticated and delicate than myself." - Manuel Calavera i Grim Fandango.



Nissebosselasse 19:28 - 18:e April 2006 | Post #6
Medlem
Inlägg: 490


Skicka PM
Funktionen system är förvisso inte knuten enbart till Windows-system - den ingår i C-standarden - men möjligtvis DOS-kommandot pause. Men det måste ju finnas ett liknande kommandot bland Unix-skalen? I så fall är det ju bara att byta ut pause mot det (kanske system ("unix_vila");) Smiley

-------------------------
http://pushingcows.se
Gula Nallen

Senast redigerad 13:07 - 19:e April 2006


Dark_Master 12:14 - 19:e April 2006 | Post #7
Medlem
Inlägg: 16


Skicka PM
Om vi återgår till ämnet så är det så att jag måste alltid skriva:

cin.get();
cin.get();

alltså TV... G...NGER! Någon som vet varför? ,,r väll inte för jobbigt att göra det, men jag undrar iaf..

-------------------------
Hej alla glada människor!



Dojjan 12:23 - 19:e April 2006 | Post #8
Medlem
Inlägg: 114


Skicka PM
Om du tidigare i programmet använt cin, måste du använda (så som Celeron sade tidigare) använda cin.ignore(1, '\n'); Detta eftersom att vid vissa läsoperationer läses alla tecken fram till radbryt. Det cin.ignore() gör är att hoppa över radbrytet (som ligger kvar i cins läsbuffer) eller endast 1 tecken.




Sidor: 1

Forum huvudsida -> Programmering -> cin.get(); c++ problem
Atom feed

Du får inte posta i den här tråden | Till toppen