Forum: c++ problem

Forum huvudsida -> Programmering -> c++ problem

Sidor: 1

Till botten

foop 23:34 - 13:e Januari 2009 | Post #1
Medlem
Inlägg: 1


Skicka PM
Hej. Tänkte försöka lära mig c++ och har precis börjat nybörjarguiden här på sidan men har stött på ett problem.

Jag har skrivit in koden

#include<iostream>

using std::cout;

int main()
{
int ett_tal;
ett_tal = 12;

cout << ett_tal;

return 0;
}

och det funkar men Dos rutan försvinner direkt innan man hinner se vad som står i den. Det stod tidigare i guiden att man kunde lägga till

cin.get();

precis innan

return 0;

Men det blir något fel när jag gör så. Hur ska jag göra?




Dread 09:38 - 14:e Januari 2009 | Post #2
Medlem
Inlägg: 135


Skicka PM
lägg till
using std::cin;
längst upp under/över using std::cout;
så funkar cin.get();
alternativt kan du skriva
system("PAUSE"); istället. (om du använder windows iaf)

-------------------------
c++



FrozenSnake 16:06 - 14:e Januari 2009 | Post #3
Medlem
Inlägg: 26


Skicka PM
#2
Man kan lägga using std::cin inuti funktionen man vill använda cin i också så man behöver inte göra den global.
Båda dessa funkar:

  1. #include<iostream>
  2. using std::cout;
  3. using std::cin;
  4.  
  5. int main()
  6. {
  7. int ett_tal;
  8. ett_tal = 12;
  9.  
  10. cout << ett_tal;
  11. cin.get();
  12.  
  13. return 0;
  14. }


  1. #include<iostream>
  2. using std::cout;
  3.  
  4. int main()
  5. {
  6. using std::cin;
  7. int ett_tal;
  8. ett_tal = 12;
  9.  
  10. cout << ett_tal;
  11. cin.get();
  12.  
  13. return 0;
  14. }


Annars kan du även använda using namespace std;.

  1. #include<iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int ett_tal;
  7. ett_tal = 12;
  8.  
  9. cout << ett_tal;
  10. cin.get();
  11.  
  12. return 0;
  13. }


Att använda system("PAUSE"); är inget bra val eftersom det är ett systemanrop som anropar pause.exe vilket inte skulle fungera så bra i t.ex. linux.

Använd istället cin.get(); eller skapa en egen funktion
denna t.ex.

  1. void pause()
  2. {
  3. std::cin.clear();
  4. std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
  5. std::cout << "\n\nTryck ENTER for att fortsatta...\n";
  6. std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
  7. }

Hmm... verkar som <backslash>n blir fetstil så de boldade (tjocka) n:en i void pause skall vara <backslash>n inte enbart n.

<backslash> = alt + ? (knappen till höger om 0)
Kanske något blinkenlights utvecklare kan fixa?




Tesuki 20:35 - 15:e Januari 2009 | Post #4
Medlem
Inlägg: 122


Skicka PM
eller gör rätt...
starta programet från DOS istället som det borde göras.

jag tycker mig fått en dejavu nu... har jag inte sett denna tråd förut...




tobbez 00:35 - 16:e Januari 2009 | Post #5
Medlem
Inlägg: 364


Skicka PM
Jodå.

Rätt sätt är att hänvisa till den här tråden. (Som man för övrigt bör ha läst när man postar en ny tråd.)




Sidor: 1

Forum huvudsida -> Programmering -> c++ problem
Atom feed

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