Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapakah `cin >> str` hanya mengeluarkan perkataan pertama dalam C ?

Mengapakah `cin >> str` hanya mengeluarkan perkataan pertama dalam C ?

Susan Sarandon
Susan Sarandonasal
2024-10-27 16:47:30844semak imbas

Why does `cin >> str` hanya ekstrak perkataan pertama dalam C ? 
> str` hanya ekstrak perkataan pertama dalam C ? " />

cin Mengekstrak Hanya Perkataan Pertama dalam C

Dalam kod yang disediakan, cin mengeluarkan rentetan menggunakan cin >> str; hanya menangkap perkataan pertama, menyebabkan masalah apabila menangani input yang mengandungi berbilang perkataan Ini disebabkan oleh cara cin beroperasi dalam Turbo C , membaca satu perkataan pada satu masa apabila menemui >>.

<.>Penyelesaian:

Untuk mengekstrak baris lengkap ke dalam tatasusunan aksara dan bukannya satu perkataan, ubah suai pernyataan cin kepada:

<code class="c++">cin.getline(str, sizeof str);</code>
Sebagai alternatif, jika menggunakan yang lebih moden Persekitaran C dan bekerja dengan rentetan, anda boleh menggantikan tatasusunan char dengan std::string dan gunakan getline() untuk membaca input seperti berikut:

<code class="c++">getline(cin, str);</code>

Pertimbangan Tambahan:

    Sangat disyorkan untuk mengemas kini pengkompil anda, kerana Turbo C 4.5 sudah ketinggalan zaman dan tidak menyokong ciri C moden Visual Studio Express atau penyusun moden yang lain dicadangkan untuk keserasian yang lebih baik.

Atas ialah kandungan terperinci Mengapakah `cin >> str` hanya mengeluarkan perkataan pertama dalam C ?. 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