Đọc đầu vào từ người dùng
Thuộc phần Kiến thức nền tảng trong hành trình Rust của Coddy. Bài học 30 trên 75.
Đến giờ, chúng ta đã tạo các chương trình bằng cách viết trực tiếp các giá trị vào code. Nhưng các chương trình thực tế thường cần tương tác với người dùng và nhận thông tin từ họ.
Trong Rust, bạn có thể nhận đầu vào từ người dùng bằng thư viện std::io. Thư viện này cung cấp các phương thức để đọc nhiều kiểu đầu vào khác nhau, như số nguyên, số thực và chuỗi.
Để sử dụng thư viện std::io, trước tiên bạn cần nhập thư viện này:
use std::io;Để đọc đầu vào từ người dùng, ta cần hai dòng code:
let mut my_var = String::new();
// Tạo một chuỗi (string) rỗng để lưu đầu vào (input)
io::stdin().read_line(&mut my_var).unwrap();
// Đọc đầu vàoThao tác này sẽ lưu giá trị đầu vào vào biến my_var dưới dạng chuỗi.
Nếu muốn lấy một số, bạn cần thêm một bước để chuyển đầu vào dạng văn bản thành số:
let age: i32 = input.trim().parse().unwrap();Cần dùng .trim() vì khi người dùng nhấn Enter, một ký tự xuống dòng được thêm vào đầu vào. Ví dụ, nếu ai đó nhập "25" rồi nhấn Enter, đầu vào thực tế là "25\n". .trim() loại bỏ các ký tự khoảng trắng thừa (dấu cách, ký tự xuống dòng, v.v.) ở cả đầu và cuối đầu vào.
Hiện tại, bạn đừng quá lo về unwrap(), sau này mình sẽ tìm hiểu về nó. Bạn chỉ cần biết rằng nó giúp ta xử lý lỗi tiềm ẩn theo cách đơn giản, dù chưa lý tưởng.
Thử thách
Người mớiViết chương trình nhận đầu vào từ người dùng (tên của họ), sau đó in ra Hello, theo sau là tên người dùng đã nhập và dấu chấm than.
Ví dụ, nếu người dùng nhập Bob, đầu ra dự kiến là Hello, Bob!.
Bạn cần:
- Tạo một đối tượng
Stringđể đọc đầu vào. - Nhắc người dùng nhập tên: "
Enter your name:" - Đọc tên người dùng bằng phương thức
std::iophù hợp. - In
Hello,theo sau là tên đã lưu và dấu chấm than!ở cuối.
Tự làm thử
use std::io;
fn main() {
// Tạo một đối tượng String
let mut name = String::new();
// Nhắc người dùng nhập tên (dùng println)
// Đọc tên người dùng nhập
// In ra lời chào
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
5Các toán tử phần 2
Các toán tử logic phần 1Các toán tử logic phần 2Ôn tập: logic đơn giảnCác toán tử logic phần 33Biến phần 2
Khai báo kiểu dữ liệuQuy ước đặt tênSuy luận kiểu dữ liệuÔn tập: Khởi tạo biếnÉp kiểu dữ liệu9Vòng lặp
Vòng lặp for qua chuỗiVòng lặp whileBreakContinueVòng lặp lồng nhauNhãn vòng lặpVòng lặp vô hạnÔn tập: Đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngMảng làm tham sốTruy cập phần tửChỉnh sửa mảngÔn tập: In mảng đẹp mắtTự luyện tập: Trình biên dịch Rust online