Forum: cin.ignore(255,'\n'); och cin.get(); funkar ej

Forum huvudsida -> Programmering -> cin.ignore(255,'\n'); och cin.get(); funkar ej

Sidor: 1

Till botten

Mannez 11:46 - 5:e September 2008 | Post #1
Medlem
Inlägg: 4


Skicka PM
Hejsan, har precis avslutat introduktionen till c++ som var grymt nice btwSmiley

har nu skrivit en liten kod men dos rutan stänger ner sig såfort jag trycker på enter efter att ha skrivit in något.

cin.get(); har tidigare hjälpt men fungerar inte på denna kod =/

någon som har lust att kolla igenom och säga vad för fel jag gjort?Smiley


#include<iostream>

using std::cout;
using std::cin;

int main()
{
int persnr;
int passw;
int namn;
char yesno[4];

cout << "Enter Name: ";
cin >> namn; "\n";


cout << "Please enter date of birth: ";
cin >> persnr; "n";


cout << "Now enter a password: ";
cin >> passw; "n";


cout << "Hello " << namn; cout << "You'r login name will be" << persnr; cout << "And you'r password" << passw;"\n";

cout << "Read and type in (yes) if correct and (no) if not\n";
cin >> yesno;

if (strcmp(yesno, "yes") == 0)
{
cout << "You have now created an acount, congratulations!";
}

else
{
cout << "Then press enter to quit";

}

cin.ignore(255,'\n');
cin.get();
return 0;

}

MVH / Manne






martin310 15:01 - 5:e September 2008 | Post #2
Medlem
Inlägg: 132


Skicka PM
Har aldrig använt cin.ignore (har funkat bra utan), testa att flytta cin.get(); mellan else-klammrarna (under "cout << "Then press enter to quit"";) och ta bort cin.ingnore funkitionenen.

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

Hjälp jorden med Granola, det är gratis och funkar på både Windows och Linux, och försämrar inte datorns prestandad!



Senast redigerad 11:16 - 24:e Maj 2009


lalja 17:54 - 5:e September 2008 | Post #3
Medlem
Inlägg: 49


Skicka PM
  1. #include<iostream>
  2.  
  3. using std::cout;
  4. using std::cin;
  5.  
  6. int main()
  7. {
  8. int persnr;
  9. int passw;
  10. int namn; // Du skriver denna till "INT"
  11. char yesno[4];
  12.  
  13. cout << "Enter Name: ";
  14. cin >> namn; "\n"; // <-- Skriver du in bokstäver här //generar det ett fel.
  15.  
  16.  
  17. cout << "Please enter date of birth: ";
  18. cin >> persnr; "n";
  19.  
  20.  
  21. cout << "Now enter a password: ";
  22. cin >> passw; "n"; // Samma här.
  23.  
  24.  
  25. cout << "Hello " << namn; cout << "You'r login name will be" << persnr; cout << "And you'r password" << passw;"\n"; // Då generas det felet här också, mm.
  26.  
  27. cout << "Read and type in (yes) if correct and (no) if not\n";
  28. cin >> yesno;
  29.  
  30. if (strcmp(yesno, "yes") == 0)
  31. {
  32. cout << "You have now created an acount, congratulations!";
  33. }
  34.  
  35. else
  36. {
  37. cout << "Then press enter to quit";
  38.  
  39. }
  40.  
  41. cin.ignore(255,'\n');
  42. cin.get();
  43. return 0;
  44.  
  45. }


Testa byt mot string namn; och lägg in
#include <string>

så skadet nog funka!

-------------------------
MVH Lalja C++



Mannez 21:38 - 5:e September 2008 | Post #4
Medlem
Inlägg: 4


Skicka PM
Tack för svaren! nu funkar det som det ska =D
fick lägga till using std::string; också för andra som har samma problemSmiley

MVH / Manne




lalja 11:46 - 7:e September 2008 | Post #5
Medlem
Inlägg: 49


Skicka PM
Okej! Glad att jag kunde hjälpa till!

-------------------------
MVH Lalja C++



Vitdom 09:53 - 9:e September 2008 | Post #6
Medlem
Inlägg: 71


Skicka PM
Du kan ju alltid använda

cin.ignore(numeric_limits<streamsize::max>, '\n');
istället för cin.ignore(); och cin.get();.

Den ignorerar alla tecken i inmatningsströmmen tills den når ett nyradstecken.

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





lalja 16:12 - 9:e September 2008 | Post #7
Medlem
Inlägg: 49


Skicka PM
Kanske är bättre att använda något man förstår sig på innan man kopierar + klistrar in bara.

-------------------------
MVH Lalja C++



Sidor: 1

Forum huvudsida -> Programmering -> cin.ignore(255,'\n'); och cin.get(); funkar ej
Atom feed

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