Forum: Nybörjare behöver hjälp!

Forum huvudsida -> Kommentarer -> Bloggar -> Nybörjare behöver hjälp!

Sidor: 1

Till botten

Isbiiten 00:01 - 21:a Oktober 2007 | Post #1
Medlem
Inlägg: 3


Skicka PM
Kommenteringstråd till blogginlägget Nybörjare behöver hjälp!.




jockepockee 01:50 - 21:a Oktober 2007 | Post #2
Medlem
Inlägg: 192


Skicka PM
testa sätta dit:

  1. cin.get();
  2. cin.get();


precis före "return 0;"

då bör inte programmet stängas ned,

det där tas upp i guiden, så om du stöter på något mer problem så kan du kolla lite i guiden om det står något eller söka i forumet efeter svaret så slipper det bli en massa trådar på svar som redan finns

-------------------------



Senast redigerad 01:51 - 21:a Oktober 2007


Isbiiten 11:52 - 21:a Oktober 2007 | Post #3
Medlem
Inlägg: 3


Skicka PM
Har redan testat det och det gör ingen skilldnad.... programmet stängs ju inte ner direkt, utan först efter att man har skrivit två siffror.. Svars texten visas aldrig..




Python 12:15 - 21:a Oktober 2007 | Post #4
Medlem
Inlägg: 157


Skicka PM
cin.get() funkar alldrig för mig.

-------------------------
-------------------------



jockepockee 14:14 - 21:a Oktober 2007 | Post #5
Medlem
Inlägg: 192


Skicka PM
denna kod gör exakt samma sak bara att de kanske ser lite annorlunda ut:

  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. int number;
  7.  
  8. cout << "Skriv in ett tal: ";
  9.  
  10. cin >> number;
  11.  
  12. if (number == 42)
  13. cout << "Du har kommit fram till svaret på meningen med livet, universum och allting!\n";
  14. else if (number == 4711)
  15. cout << "Du valde ett riktigt ovanligt tal din rackare!\n";
  16. else
  17. cout << "Du valde ett alldeles vanligt tal.\n";
  18.  
  19. cin.get();
  20. cin.get();
  21.  
  22. return 0;
  23. }


notera :
cin.get();
cin.get();

före "return 0;" som pausar programmet tills du trycker på enter igen, annars hinner man inte se något.

det skulle gå lika bra med "system("pause");" istället för dom två raderna, men detta fungerar dock bara i windows.

-------------------------





Isbiiten 17:25 - 21:a Oktober 2007 | Post #6
Medlem
Inlägg: 3


Skicka PM
Tackar! Nu funkade det... Man ska alltså använda två cin.get(); i det här läget..



Senast redigerad 17:26 - 21:a Oktober 2007


jockepockee 17:29 - 21:a Oktober 2007 | Post #7
Medlem
Inlägg: 192


Skicka PM
ja, om du har anropat cin tigare måste du ha de annars ignorerar den cin.get();

-------------------------





Independence 21:00 - 21:a Oktober 2007 | Post #8
Administratör
Inlägg: 1800


Skicka PM
Att använda två cin i rad ser ju egentligen lite fult utSmiley
Det finns en annan lösning och förklaring till problemet i FAQen tror jag

-------------------------

Vi är riddarna som säger fiskbulle!





jockepockee 15:26 - 22:a Oktober 2007 | Post #9
Medlem
Inlägg: 192


Skicka PM
så du menar att det är snyggare att använda en "cin.ignore(255,''\n'');" lr vad de nu ska stå istället för den första "cin.get();"?

annars kan man ju göra en egen pause funktion eller annvända "system("pause");" (endeast för windows) eller "getch();", fast då måste du ha conio.h vilken inte följer med alla kompilatorer

"for(;;);" skulle också kunna funka, det beror på hur man vill pausa ett program (det där gör att programmet stannar av helt och hållet)

-------------------------



Senast redigerad 15:33 - 22:a Oktober 2007


Independence 16:02 - 22:a Oktober 2007 | Post #10
Administratör
Inlägg: 1800


Skicka PM
for(;;);

Kommer väl dra 100% CPU också, kanske inte så önskvärt...

-------------------------

Vi är riddarna som säger fiskbulle!





jockepockee 19:56 - 22:a Oktober 2007 | Post #11
Medlem
Inlägg: 192


Skicka PM
nähe?

-------------------------





FunkyChicken 21:02 - 22:a Oktober 2007 | Post #12
Nyhetsredaktör
Inlägg: 800


Skicka PM
Var det inte nån här som hittade for(;;); i linuxkerneln eller vad det var nån gång... men då med tanken att hela systemet skulle stanna förstås.




ozamosi 21:09 - 22:a Oktober 2007 | Post #13
Administratör
Inlägg: 1129


Skicka PM
Det var väl så linux 0.01 gjorde om det fick kernel panic eller något sådant.

-------------------------
Ljusblå



jockepockee 14:02 - 23:e Oktober 2007 | Post #14
Medlem
Inlägg: 192


Skicka PM
det sista som finns i main funktionen i en kernel brukar vara

for(;;);

som är typ som "return 0;" i vanliga program

Rätt, panic.c i linux 1.0 innehåller "for(;;);":

  1. NORET_TYPE void panic(const char * fmt, ...)
  2. {
  3. static char buf[1024];
  4. va_list args;
  5.  
  6. va_start(args, fmt);
  7. vsprintf(buf, fmt, args);
  8. va_end(args);
  9. printk(KERN_EMERG "Kernel panic: %s\n",buf);
  10. if (current == task[0])
  11. printk(KERN_EMERG "In swapper task - not syncing\n");
  12. else
  13. sys_sync();
  14. for(;;);
  15. }


-------------------------



Senast redigerad 14:06 - 23:e Oktober 2007


Sidor: 1

Forum huvudsida -> Kommentarer -> Bloggar -> Nybörjare behöver hjälp!
Atom feed

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