Rumah >pembangunan bahagian belakang >C++ >Mengapa Gunakan `getline(cin, x)` untuk Mendapatkan Input Pengguna Lengkap?

Mengapa Gunakan `getline(cin, x)` untuk Mendapatkan Input Pengguna Lengkap?

Susan Sarandon
Susan Sarandonasal
2024-11-20 11:32:50956semak imbas

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

Cara Mendapatkan Input Pengguna Lengkap dengan getline(cin, x)

Dalam pengaturcaraan, membaca input pengguna ialah tugas asas. Walaupun cin boleh digunakan untuk mendapatkan semula aksara atau perkataan individu, utilitinya boleh dihadkan apabila berurusan dengan baris penuh teks. Untuk menangani isu ini, pendekatan yang lebih sesuai diperlukan.

Pertimbangkan kod berikut, di mana pengguna digesa untuk menulis ke fail:

#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;
}

Dalam kod asal, baris cin >> y; hanya akan membaca satu perkataan dan bukannya keseluruhan baris teks yang dimasukkan oleh pengguna. Untuk membetulkan ini, fungsi cin hendaklah diubah suai kepada getline(cin, y);.

Fungsi getline() membolehkan anda membaca baris input yang lengkap daripada input standard (iaitu, papan kekunci pengguna) dan simpan dalam pembolehubah rentetan y. Ini memastikan bahawa kod berikutnya boleh mengakses baris penuh teks yang dimasukkan oleh pengguna, membolehkan anda menulisnya pada fail atau melakukan operasi lain mengikut keperluan.

Atas ialah kandungan terperinci Mengapa Gunakan `getline(cin, x)` untuk Mendapatkan Input Pengguna Lengkap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn