title: cin error in C++
body: <p>I am writing a program that will calculate password strength according to two formulas. It requires the user to enter 2 passwords, one being eight characters or less and the other being 20 characters or more.  The first parts executes with out problem. But, when I go to execute the second part, the prompt to enter the password and character set both show up at the same time and when I enter anything, whether it be numbers or characters, it aborts.  I have checked over my code several times and don't understand why this is happening.  Any help would be greatly appreciated!</p>
  
  <pre><code>int main()
  {
      //All variables and constants are declared
      string eight_password, first_char, next_seven, twenty_password, first_char_twenty, next_seven_twenty, next_twelve, remaining;
      int ep_length, character_set, first_char_length, next_seven_length, character_set_20, twenty_length;
      double eight_ent_strength, eight_nist_strength, twenty_ent_strength;
      const int NIST_FIRST = 4, NIST_SEVEN = 2, NIST_REM = 1, NIST_CHARACTER=94, NIST_BONUS=6;
      const double NIST_TWELVE = 1.5; 
  
       //Console prompts for user to input password and character set
      cout &lt;&lt; "Hello! Please enter a password of 8 characters or less (including spaces!):" &lt;&lt; endl;
      getline(cin, eight_password);
      cout &lt;&lt; "What character set is being used?";
      cin &gt;&gt; character_set&gt;&gt;ws;
  
      //Password length and information entropy strength are calculated and saved to the appropriate variables
      ep_length = eight_password.length();
      eight_ent_strength = (ep_length*((log(character_set))/(log(2))));
  
      //First character and next seven characters are extracted and saved to the appropriate variables
      first_char = eight_password.substr(0, 1);
      next_seven = eight_password.substr(1, 7);
  
      //First character and next seven characters lengths are calculated and saved to the appropriate variables
      first_char_length = first_char.length();
      next_seven_length = next_seven.length();
  
       //NIST strength is calculated and saved to the appropriate variable
      eight_nist_strength = (first_char_length*NIST_FIRST) + (next_seven_length*NIST_SEVEN)+((character_set/NIST_CHARACTER)*NIST_BONUS);
  
      //The information that was calculated is now printed back out on the console to be viewed by the user
      cout &lt;&lt; "Your password " &lt;&lt; eight_password &lt;&lt; " is " &lt;&lt; ep_length &lt;&lt; " characters long. According to the information " &lt;&lt; endl;
      cout&lt;&lt;"entropy formula, it has a strength of " &lt;&lt; eight_ent_strength &lt;&lt; "." &lt;&lt; endl;
      cout &lt;&lt; "The first character is \"" &lt;&lt; first_char &lt;&lt; "\" and the next seven characters are \"" &lt;&lt; next_seven &lt;&lt; "\". " &lt;&lt; endl;
      cout &lt;&lt; "According to the NIST formula, it has a strength of " &lt;&lt; eight_nist_strength &lt;&lt; "." &lt;&lt; endl &lt;&lt; endl;
  
      cout &lt;&lt; "Now, please enter a password of 8 characters or less (including spaces!):" &lt;&lt; endl;
      getline(cin, twenty_password);
      cout &lt;&lt; "What character set is being used?";
      cin &gt;&gt; character_set_20;
      twenty_length = twenty_password.length();
      twenty_ent_strength = (twenty_length*((log(character_set_20)) / (log(2))));
      first_char_twenty = twenty_password.substr(0, 1);
      next_seven_twenty = twenty_password.substr(1, 7);
      next_twelve = twenty_password.substr(7, 19);
      remaining = twenty_password.substr(19);
      cout &lt;&lt; remaining;
      return 0;
  
  }
  </code></pre>