Das Programm wartet nicht auf cin

int x=0;
string fullname = "";
float salary;
float payincrease;
float newsal;
float monthlysal;
float retroactive;
while(x<3){
    cout << "\n What is your full name?";
    cin >> fullname;
    cout << "\n What is your current salary? \t";
    cin >> salary;
    cout << "\n What is your pay increase? \t";
    cin >> payincrease;
    newsal = (salary*payincrease)+salary;
    monthlysal = newsal/12.00;
    retroactive = (monthlysal*6)-(salary/2);
    cout << "\n" << fullname << "'s SALARY INFORMATION";
    cout << "\n New Salary \t Monthly Salary \t Retroactive Pay";
    cout << "\n \t" << newsal << "\t" << monthlysal << "\t" << retroactive;
    x++;
}

Meine Schleife scheint nicht zu stoppen, jedes mal, wenn cin ist gefragt, und statt sofort führt die Schleife 3 mal auf seinen eigenen. Wie bekomme ich es zu stoppen, wenn input ist gefragt?

  • cin Haltestellen zu Räumen. Es wird funktionieren, wenn Sie geben Sie ein Wort in einer Zeit. Andernfalls verwenden Sie std::getline.
  • Sie müssen nie schreiben, eine Eingabe, die nicht sofort erfasst innerhalb eines booleschen Kontext. Ansonsten gibt es nicht zu sagen, wie Sie Ihr Programm könnte fließen. Keine Stelle suchen, nicht weiter.
  • cin selbst nicht "stop", die speziell auf Bereiche; operator>>(istream&,string&) tut standardmäßig.
  • Ich Schätze Ihre pedancy. Sie sind richtig, natürlich. cin ist nur ein Objekt.
  • Sie versuchen, die Eingabe Leerzeichen in deinem ganzen Namen? Wenn dem so ist, das erste Wort (Vorname) ist zu Lesen, wie der vollständige name, dann das zweite Wort (Nachname) umgewandelt wird, um die Lohn — und die schlägt fehl, aber Sie wissen nicht, überprüfen Sie die Konvertierung...
  • Sie es zu schätzen) --konnte nicht widerstehen.
  • Etwas schien ein wenig seltsam, wenn ich getippt, dass... Nicht sicher, warum ich es Tat.

InformationsquelleAutor user1647490 | 2012-09-04
Schreibe einen Kommentar