Bird
Raised Fist0
C++programming~5 mins

String input and output in C++

Choose your learning style10 modes available
Introduction

We use string input and output to read words or sentences from the user and show text on the screen.

When you want the user to type their name.
When you need to get a sentence or phrase from the user.
When you want to display messages or results as text.
When you want to ask questions and get answers in words.
When you want to show instructions or information on the screen.
Syntax
C++
#include <iostream>
#include <string>

int main() {
    std::string text;
    std::getline(std::cin, text); // to read a full line including spaces
    std::cout << text << std::endl; // to print the string
    return 0;
}

Use std::getline(std::cin, variable) to read a whole line including spaces.

Use std::cin >> variable to read a single word (stops at space).

Examples
This reads one word (no spaces) and greets the user.
C++
#include <iostream>
#include <string>

int main() {
    std::string name;
    std::cin >> name;
    std::cout << "Hello, " << name << "!" << std::endl;
    return 0;
}
This reads a full line including spaces and prints it back.
C++
#include <iostream>
#include <string>

int main() {
    std::string sentence;
    std::getline(std::cin, sentence);
    std::cout << "You wrote: " << sentence << std::endl;
    return 0;
}
Sample Program

This program asks the user to enter their full name (including spaces) and then greets them by name.

C++
#include <iostream>
#include <string>

int main() {
    std::cout << "Enter your full name: ";
    std::string fullName;
    std::getline(std::cin, fullName);
    std::cout << "Welcome, " << fullName << "!" << std::endl;
    return 0;
}
OutputSuccess
Important Notes

Remember to include <string> to use the std::string type.

Using std::getline is best when you want to read sentences or names with spaces.

Using std::cin >> reads only up to the first space.

Summary

Use std::string to store text.

Use std::getline(std::cin, variable) to read full lines with spaces.

Use std::cout to print strings to the screen.

Practice

(1/5)
1. Which C++ statement correctly reads a full line of text including spaces into a string variable named name?
easy
A. std::cin >> name;
B. std::getline(std::cin, name);
C. std::cin.get(name);
D. getline(name, std::cin);

Solution

  1. Step 1: Understand how to read full lines with spaces

    The function std::getline reads an entire line including spaces into a string.
  2. Step 2: Identify correct syntax for reading from standard input

    The correct syntax is std::getline(std::cin, variable), so std::getline(std::cin, name); is correct.
  3. Final Answer:

    std::getline(std::cin, name); -> Option B
  4. Quick Check:

    Full line input = std::getline(std::cin, name) [OK]
Hint: Use std::getline to read full lines with spaces [OK]
Common Mistakes:
  • Using std::cin >> name; reads only until first space
  • Swapping arguments in getline function
  • Using std::cin.get() incorrectly for strings
2. Which of the following is the correct way to print the string variable message to the console in C++?
easy
A. std::cout << message << std::endl;
B. print(message);
C. echo message;
D. console.log(message);

Solution

  1. Step 1: Identify the standard output method in C++

    C++ uses std::cout to print output to the console.
  2. Step 2: Use the insertion operator to print strings

    The correct syntax is std::cout << message << std::endl; to print the string and move to the next line.
  3. Final Answer:

    std::cout << message << std::endl; -> Option A
  4. Quick Check:

    Print string = std::cout << message << std::endl; [OK]
Hint: Use std::cout << variable << std::endl; to print strings [OK]
Common Mistakes:
  • Using print() which is not a C++ function
  • Using echo or console.log which are from other languages
  • Forgetting std:: or << operator
3. What will be the output of the following C++ code?
std::string text;
std::getline(std::cin, text);
std::cout << "You entered: " << text << std::endl;

If the user inputs: Hello World
medium
A. You entered: Hello
B. You entered:
C. Compilation error
D. You entered: Hello World

Solution

  1. Step 1: Understand std::getline input behavior

    std::getline(std::cin, text); reads the entire line including spaces, so it captures "Hello World".
  2. Step 2: Output the stored string

    The output prints "You entered: " followed by the full input string, so it prints "You entered: Hello World".
  3. Final Answer:

    You entered: Hello World -> Option D
  4. Quick Check:

    getline reads full line = You entered: Hello World [OK]
Hint: std::getline reads full line including spaces [OK]
Common Mistakes:
  • Assuming std::cin >> text reads full line
  • Expecting only first word output
  • Thinking code causes compilation error
4. Identify the error in this C++ code snippet that tries to read a string with spaces:
std::string input;
std::cin >> input;
std::cout << input << std::endl;
medium
A. std::string is not a valid type
B. Missing semicolon after std::string input
C. std::cin >> input; reads only until first space, not full line
D. std::cout cannot print strings directly

Solution

  1. Step 1: Understand how std::cin >> works with strings

    std::cin >> input; reads input only until the first whitespace, so it cannot read full lines with spaces.
  2. Step 2: Identify the correct method to read full lines

    To read full lines including spaces, std::getline(std::cin, input); should be used instead.
  3. Final Answer:

    std::cin >> input; reads only until first space, not full line -> Option C
  4. Quick Check:

    std::cin >> string reads until space [OK]
Hint: Use std::getline to read strings with spaces, not std::cin >> [OK]
Common Mistakes:
  • Thinking std::cin >> reads full line
  • Confusing syntax errors with input behavior
  • Believing std::cout cannot print strings
5. You want to read a user's full name (which may contain spaces) and then print a greeting like Hello, [name]!. Which code snippet correctly does this in C++?
hard
A. std::string name; std::getline(std::cin, name); std::cout << "Hello, " << name << "!" << std::endl;
B. std::string name; std::cin >> name; std::cout << "Hello, " << name << "!" << std::endl;
C. char name[50]; std::cin >> name; std::cout << "Hello, " << name << "!" << std::endl;
D. std::string name; getline(name, std::cin); std::cout << "Hello, " << name << "!" << std::endl;

Solution

  1. Step 1: Choose method to read full name with spaces

    Using std::getline(std::cin, name); reads the entire line including spaces, perfect for full names.
  2. Step 2: Print greeting with the name

    std::cout << "Hello, " << name << "!" << std::endl; correctly prints the greeting with the name.
  3. Final Answer:

    std::string name; std::getline(std::cin, name); std::cout << "Hello, " << name << "!" << std::endl; -> Option A
  4. Quick Check:

    Read full line + print greeting = std::string name; std::getline(std::cin, name); std::cout << "Hello, " << name << "!" << std::endl; [OK]
Hint: Use std::getline for full name input, then std::cout to print [OK]
Common Mistakes:
  • Using std::cin >> which stops at first space
  • Swapping arguments in getline function
  • Using char arrays without proper input handling
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard