Introduction to C++ | getline()

C++ getline()

The getline() function in C++ is used to read a line of text from an input stream. It allows you to read an entire line, including spaces, until the newline character is encountered. This function is typically used when you want to read a complete line of input from the user or from a file.

What is getline()?

getline() is a function provided by the C++ Standard Library in the iostream header. Unlike cin, which stops reading at the first whitespace character, getline() reads input until it encounters the newline character, allowing the input to include spaces.

Syntax of getline()

Syntax


        #include <iostream>
        #include <string>
        
        getline(input_stream, string_variable);
                    

Function Parameters

Example of Using getline() to Read from Console

Here’s an example of how to use getline() to read a line of text entered by the user:

Code Example: Using getline()


        #include <iostream>
        #include <string>
        
        using namespace std;
        
        int main() {
            string name;
            
            // Ask for user's name and store it in 'name' variable
            cout << "Enter your name: ";
            getline(cin, name);
            
            // Display the entered name
            cout << "Hello, " << name << "!" << endl;
            
            return 0;
        }
                    

Output

Enter your name: John Doe
Hello, John Doe!

Reading Multiple Lines with getline()

You can use getline() in a loop to read multiple lines of text, one at a time. This is useful when reading data from a file or continuously reading input from the user.

Code Example: Reading Multiple Lines


        #include <iostream>
        #include <string>
        
        using namespace std;
        
        int main() {
            string line;
            int lineCount = 1;
        
            // Read 3 lines of input
            while (lineCount <= 3) {
                cout << "Enter line " << lineCount << ": ";
                getline(cin, line);
                cout << "You entered: " << line << endl;
                lineCount++;
            }
        
            return 0;
        }
                    

Output

Enter line 1: First line of text
You entered: First line of text
Enter line 2: Second line with spaces
You entered: Second line with spaces
Enter line 3: Third line
You entered: Third line

Using getline() with Files

getline() can also be used to read lines from a file. Here’s an example of how to use it to read a text file:

Code Example: Using getline() to Read from a File


        #include <iostream>
        #include <fstream>
        #include <string>
        
        using namespace std;
        
        int main() {
            string line;
            ifstream inputFile("example.txt"); // Open file for reading
        
            if (inputFile.is_open()) {
                // Read file line by line
                while (getline(inputFile, line)) {
                    cout << line << endl;
                }
                inputFile.close(); // Close the file after reading
            } else {
                cout << "Unable to open file" << endl;
            }
        
            return 0;
        }
                    

Output

(Contents of "example.txt")
First line of text
Second line of text
Third line of text

Common Pitfalls

Pro Tip:

💡 Pro Tip

While reading from files, always check if the file opened successfully using inputFile.is_open(). This ensures that you can handle errors gracefully if the file does not exist or cannot be opened.