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

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

Patricia Arquette
發布: 2024-12-06 01:59:11
原創
561 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板