首頁 >後端開發 >C++ >為什麼要使用 getline(cin, x) 來取得完整的使用者輸入?

為什麼要使用 getline(cin, x) 來取得完整的使用者輸入?

Susan Sarandon
Susan Sarandon原創
2024-11-20 11:32:50957瀏覽

Why Use `getline(cin, x)` to Get Complete User Input?

如何使用getline(cin, x) 取得完整的使用者輸入

在程式設計中,讀取使用者輸入是一項基本任務。雖然 cin 可用於檢索單字或單字,但在處理整行文字時,其實用性可能會受到限制。為了解決這個問題,需要更合適的方法。

考慮以下程式碼,其中提示使用者寫入檔案:

#include <iostream>
#include <cstdlib>
#include <cstring>
#include <fstream>

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 y;
    cout << "What would you like to write?" << endl;
    getline(cin, y);  // Replace cin >> y;
    ofstream file;
    file.open("Characters.txt");
    file << strlen(y) << " Characters." << endl;
    file << endl;
    file << y;
    file.close();

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

  return 0;
}

在原始程式碼中,該行辛>> y;只會讀取單字,而不是使用者輸入的整行文字。要修正這個問題,應將 cin 函數修改為 getline(cin, y);。

getline() 函數可讓您從標準輸入(即使用者的鍵盤)讀取完整的輸入行並將其儲存在字串變數 y 中。這可確保後續程式碼可以存取使用者輸入的整行文本,使您能夠將其寫入文件或根據需要執行其他操作。

以上是為什麼要使用 getline(cin, x) 來取得完整的使用者輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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