4.3.5 Nhập string

Như bạn có thể nhận thấy, các chuỗi xuất ra thật dễ dàng và nói chung không gây ra bất kỳ vấn đề gì. Bạn có thể đặt một biến string ở giữa các biểu thức có ý định hiển thị trên màn hình bằng cách sử dụng cout và nội dung của nó sẽ được xuất ra.

Nhập vào chuỗi phức tạp hơn một chút bởi vì cin coi khoảng trắng (không chỉ dấu cách thông thường mà còn tính tất cả những thứ gì gọi là khoảng trắng) như là dấu phân tách giữa các dữ liệu. Có nghĩa là bạn có thể gặp rắc rối nếu bạn muốn nhập và lưu trữ một chuỗi chứa các ký tự trắng.

Hãy thử biên dịch và chạy chương trình ở sau →

Hãy nhập một số từ bằng bàn phím và tách chúng bằng dấu cách. Bạn có thể viết một cái gì đó như thế này:

Who am i ?

và nhấn Enter. Đừng ngạc nhiên nếu bạn chỉ nhìn thấy từ đầu tiên được in ra trên màn hình (trong ví dụ này là: Who). Các cin nghĩ rằng bạn đã nhập vào dấu cách để đánh dấu sự kết thúc của chuỗi. Đó không phải là lỗi. Đó là tính năng.

====

Nếu bạn muốn nhập một dòng văn bản và xử lý các ký tự trắng giống như bất kỳ ký tự khác, bạn phải sử dụng hàm getline. Hàm này đọc tất cả các ký tự được nhập và không đối xử đặc biệt với bất kỳ ký tự nào ngoại trừ ký tự đánh dấu sự kết thúc của dòng. Kết quả là, tất cả các ký tự được nhập trước khi nhấn phím Enter sẽ được nhập vào như một chuỗi.

Bây giờ hãy xem chương trình đã sửa →

Biên dịch và chạy chương trình, bạn sẽ thấy sự khác biệt so với lúc nãy 🙂