Bird
Raised Fist0
C++programming~10 mins

String input and output in C++ - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - String input and output
Start Program
↓
Prompt User for Input
↓
User Types String
↓
Store Input in String Variable
↓
Output the String
↓
End Program
The program starts, asks the user to type a string, stores it, then prints it back.
Execution Sample
C++
#include <iostream>
#include <string>

int main() {
  std::string name;
  std::getline(std::cin, name);
  std::cout << name << std::endl;
  return 0;
}
This code reads a full line of text from the user and then prints it.
Execution Table
StepActionInput/ValueVariable 'name'Output
1Program starts---
2Wait for user inputUser types: Hello World--
3Store input in 'name'Hello WorldHello World-
4Print 'name'-Hello WorldHello World
5Program ends-Hello World-
💡 Program ends after printing the input string.
Variable Tracker
VariableStartAfter InputFinal
name""Hello WorldHello World
Key Moments - 2 Insights
Why do we use std::getline instead of std::cin >> name?
std::getline reads the whole line including spaces, while std::cin >> name stops at the first space. See execution_table step 2 where input has spaces.
What happens if the user just presses Enter without typing anything?
The variable 'name' becomes an empty string "". The program still prints a blank line as shown in variable_tracker.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 3, what is the value stored in 'name'?
A"Hello"
B"Hello World"
C"World"
D""
💡 Hint
Check the 'Variable name' column at step 3 in execution_table.
At which step does the program output the string?
AStep 4
BStep 3
CStep 2
DStep 5
💡 Hint
Look at the 'Output' column in execution_table.
If the user input was "Goodbye", how would 'name' change after input?
A"Hello World"
B"Good"
C"Goodbye"
D"Bye"
💡 Hint
Refer to variable_tracker and imagine replacing input with "Goodbye".
Concept Snapshot
String input and output in C++:
- Use std::string to store text.
- Use std::getline(std::cin, var) to read full line including spaces.
- Use std::cout << var << std::endl; to print the string.
- std::cin >> var reads only until first space.
- Always include <string> and <iostream> headers.
Full Transcript
This example shows how a C++ program reads a full line of text from the user using std::getline and stores it in a string variable named 'name'. Then it prints the stored string back to the screen. The execution flow starts with the program waiting for user input, then storing that input, and finally outputting it. The variable 'name' changes from empty to the user's input after reading. Using std::getline allows capturing spaces in the input, unlike std::cin >> name which stops at the first space. The program ends after printing the input string.

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