> biasanya membaca satu perkataan daripada sumber input seperti..."/> > biasanya membaca satu perkataan daripada sumber input seperti...">
Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Membaca Seluruh Baris Input Termasuk Ruang dengan C \'s `cin`?
C "cin" Hanya Membaca Perkataan Pertama
Dalam C , pengendali aliran input >> lazimnya membaca satu perkataan daripada sumber input seperti papan kekunci. Ini boleh menjadi masalah apabila cuba membaca rentetan yang mengandungi ruang, kerana hanya perkataan pertama akan ditangkap. Isu ini boleh dihadapi semasa bekerja dengan tatasusunan aksara.
Pertimbangkan kod berikut:
<code class="c++">#include <iostream.h> #include <conio.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(); return 0; }
Apabila menjalankan kod ini dalam Turbo C 4.5, hanya perkataan pertama rentetan dipaparkan. Ini kerana cin >> str hanya membaca satu perkataan ke dalam tatasusunan aksara str. Untuk membaca baris input yang lengkap, termasuk ruang, pendekatan alternatif diperlukan.
Satu pilihan ialah menggunakan fungsi getline():
<code class="c++">#include <iostream> #include <string> using namespace std; int main() { string s; cout << "Enter string :"; getline(cin, s); cout << s; return 0; }</code>
Kod ini akan membaca keseluruhan baris input, termasuk ruang, ke dalam rentetan s. getline() juga boleh digunakan untuk membaca ke dalam tatasusunan aksara:
<code class="c++">#include <iostream.h> #include <conio.h> int main() { char str[100]; cout << "Enter string :"; cin.getline(str, sizeof str); cout << str; return 0; }
Sebagai alternatif, jika anda lebih suka menggunakan >> operator, anda boleh mengubah suai kod seperti berikut:
<code class="c++">#include <iostream.h> #include <conio.h> class String { char str[100]; public: void input() { cout << "Enter string :"; cin.getline(str, sizeof str); } void display() { cout << str; } }; int main() { String s; s.input(); s.display(); return 0; }</code>
Dengan pengubahsuaian ini, kod akan membaca dan memaparkan keseluruhan rentetan input dengan betul.
Atas ialah kandungan terperinci Bagaimana untuk Membaca Seluruh Baris Input Termasuk Ruang dengan C \'s `cin`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!