Home Backend Development C++ Why Does `getline()` Skip Input After Using `cin`?

Why Does `getline()` Skip Input After Using `cin`?

Dec 08, 2024 pm 07:21 PM

Why Does `getline()` Skip Input After Using `cin`?

Addressing 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;
Copy after login

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;
Copy after login

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article

Hot Article

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

C language function format letter case conversion steps C language function format letter case conversion steps Mar 03, 2025 pm 05:53 PM

C language function format letter case conversion steps

Gulc: C library built from scratch Gulc: C library built from scratch Mar 03, 2025 pm 05:46 PM

Gulc: C library built from scratch

What are the types of values ​​returned by c language functions? What determines the return value? What are the types of values ​​returned by c language functions? What determines the return value? Mar 03, 2025 pm 05:52 PM

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 What are the definitions and calling rules of c language functions and what are the Mar 03, 2025 pm 05:53 PM

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

How does the C   Standard Template Library (STL) work? How does the C Standard Template Library (STL) work? Mar 12, 2025 pm 04:50 PM

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

Where is the return value of the c language function stored in memory? Where is the return value of the c language function stored in memory? Mar 03, 2025 pm 05:51 PM

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

distinct usage and phrase sharing distinct usage and phrase sharing Mar 03, 2025 pm 05:51 PM

distinct usage and phrase sharing

How do I use algorithms from the STL (sort, find, transform, etc.) efficiently? How do I use algorithms from the STL (sort, find, transform, etc.) efficiently? Mar 12, 2025 pm 04:52 PM

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

See all articles