Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Turbo C \"cin\" Hanya Membaca Perkataan Pertama?

Mengapa Turbo C \"cin\" Hanya Membaca Perkataan Pertama?

Barbara Streisand
Barbara Streisandasal
2024-10-28 18:07:29503semak imbas

Why Does Turbo C  's

Penghadan "cin" Turbo C: Membaca Hanya Perkataan Pertama

Dalam Turbo C , pengendali input "cin" mempunyai had apabila berurusan dengan tatasusunan aksara. Khususnya, ia hanya membaca sehingga ia menemui aksara ruang putih (cth., ruang atau baris baharu). Ini boleh membawa kepada tingkah laku yang tidak dijangka apabila cuba membaca input berbilang perkataan.

Pertimbangkan kod Turbo C berikut:

<code class="c++">#include <iostream.h>

class String {
  char str[100];

public:
  void input() {
    cout << "Enter string: ";
    cin >> str;
  }
  void display() {
    cout << str;
  }
};

int main() {
  String s;
  s.input();
  s.display();
}</code>

Jika anda menjalankan kod ini dan masukkan input "Steve Hawking, " anda menjangkakan output untuk memaparkan keseluruhan rentetan. Walau bagaimanapun, disebabkan oleh pengehadan "cin", hanya "Steve" dipaparkan, kerana "cin" berhenti membaca pada aksara ruang kosong pertama (ruang).

Mengatasi Had

Untuk menangani had ini, anda boleh menggunakan kaedah alternatif untuk membaca tatasusunan aksara dalam Turbo C :

  1. cin.getline(str, sizeof str);
    Ini kaedah membaca keseluruhan baris input, termasuk aksara ruang putih, ke dalam tatasusunan aksara yang ditentukan.
  2. std::getline(cin, str);
    Jika anda mempunyai akses kepada standard perpustakaan, anda boleh menggunakan kaedah ini untuk membaca keseluruhan baris menjadi objek rentetan, yang menawarkan lebih banyak kefleksibelan.
  3. Laksanakan kelas rentetan anda sendiri:
    Anda boleh menentukan kelas rentetan anda sendiri yang mengendalikan input dan output dengan lebih cekap.

Cadangan

Pendekatan yang disyorkan pada masa kini ialah menggunakan penyusun C moden dan perpustakaan standard. Ini menyediakan pengendalian input yang lebih dipercayai dan cekap, termasuk keupayaan untuk membaca keseluruhan baris input.

Atas ialah kandungan terperinci Mengapa Turbo C \"cin\" Hanya Membaca Perkataan Pertama?. 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