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

Barbara Streisand
Lepaskan: 2024-10-28 18:07:29
asal
502 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!