How to read input with spaces using std::cin in C++

  1. Introduction
  2. The Problem
  3. The Solution
  4. Conclusion


When it comes to reading input in C++, the standard input stream (std::cin) is the most commonly used method. However, when dealing with input that contains spaces, it can be tricky to read it all in one go. In this article, we will explore how to read input with spaces using std::cin in C++.

The Problem

Consider the following input: "John Doe". If we try to read this using std::cin, we will only get "John" as the input. This is because std::cin stops reading as soon as it encounters a whitespace character. This can be problematic when dealing with input that contains strings with spaces.

The Solution

To read input with spaces using std::cin, we need to use the std::getline() function. This function reads input until it encounters a newline character or the specified delimiter. Here's an example:

#include <iostream>
#include <string>

int main() {
    std::string name;
    std::cout << "Enter your name: ";
    std::getline(std::cin, name);
    std::cout << "Hello, " << name << "!" << std::endl;
    return 0;

In this example, we declare a std::string variable called "name" and prompt the user to enter their name using std::cout. We then use std::getline() to read in the entire line of input, including any spaces, and store it in the "name" variable. Finally, we output a greeting using std::cout and the "name" variable.


When it comes to reading input with spaces in C++, std::cin can be problematic. However, by using the std::getline() function, we can easily read in entire lines of input, including any spaces. By incorporating this technique into our C++ programs, we can ensure that our input is read correctly and our programs run smoothly.

Click to rate this post!
[Total: 0 Average: 0]

Related posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Go up

Below we inform you of the use we make of the data we collect while browsing our pages. You can change your preferences at any time by accessing the link to the Privacy Area that you will find at the bottom of our main page. More Information