首頁 >後端開發 >C++ >為什麼 cin 只讀取使用者輸入的第一個字?

為什麼 cin 只讀取使用者輸入的第一個字?

Patricia Arquette
Patricia Arquette原創
2024-12-06 01:59:11560瀏覽

Why Does `cin` Only Read the First Word of User Input?

使用cin從使用者讀取完整行

嘗試使用cin

讀取使用者輸入的完整行時,開發人員經常遇到只捕獲第一個單字的問題。為了解決這個問題,必須使用正確的行提取方法。

在給定的 C 程式碼中,您使用了 cin >> y;

收集使用者輸入。但是,這種方法只能讀取第一個空格字符,因此只能捕獲單字。

要有效讀取整行輸入,請切換到使用 getline(cin, response) ;

。這是程式碼的更新版本:
#include <iostream>
#include <string>

using namespace std;

int main()
{
    char x;

    cout << "Would you like to write to a file?" << endl;
    cin >> x;
    if (x == 'y' || x == 'Y')
    {
        string response;
        cout << "What would you like to write." << endl;
        getline(cin, response); // Use getline instead of cin >>
        ofstream file;
        file.open("Characters.txt");
        file << strlen(response) << " Characters." << endl;
        file << endl;
        file << response;

        file.close();

        cout << "Done. \a" << endl;
    }
    else
    {
        cout << "K, Bye." << endl;
    }
}

透過利用 getline

,您現在可以有效地捕獲整行輸入,解決僅讀取單字的問題。

以上是為什麼 cin 只讀取使用者輸入的第一個字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn