Why Does `getline()` Skip Input After Using `cin`?
Dec 08, 2024 pm 07:21 PMAddressing Input Skip in getline()
When using the getline() function within a program, it's important to be aware of a common issue: getting immediate subsequent input after entering a number. This behavior can occur because of the newline character left in the input stream after entering the number.
Let's examine a specific example:
int number; string str; int accountNumber; cout << "Enter number: "; cin >> number; cout << "Enter name: "; getline(cin, str); cout << "Enter account number: "; cin >> accountNumber;
When executed, this code behaves unexpectedly. After inputting the number, it immediately outputs "Enter Account Number" without allowing the user to enter a name using getline(cin, str).
The reason for this behavior lies in the way getline() reads input. It reads the entire line, including the newline character. When you enter the number and press enter, the newline is left in the input stream. When getline() is called, it reads this newline and returns, without waiting for any other input. This causes the program to skip over the "Enter name:" prompt.
To resolve this issue, you can use the std::ws manipulator to skip any leading whitespace, including the newline character, before calling getline(). Here's the updated code:
cout << "Enter number: "; cin >> number; cout << "Enter name: "; cin >> std::ws; getline(cin, str); cout << "Enter account number: "; cin >> accountNumber;
With this change, the program will correctly pause at the "Enter name:" prompt and allow the user to input a name before continuing.
The above is the detailed content of Why Does `getline()` Skip Input After Using `cin`?. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

C language function format letter case conversion steps

What are the types of values returned by c language functions? What determines the return value?

What are the definitions and calling rules of c language functions and what are the

How does the C Standard Template Library (STL) work?

Where is the return value of the c language function stored in memory?

How do I use algorithms from the STL (sort, find, transform, etc.) efficiently?
