Menu
CoddyTech

Đọ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ào

Thao 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.

challenge icon

Thử thách

Người mới

Viế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:

  1. Tạo một đối tượng String để đọc đầu vào.
  2. Nhắc người dùng nhập tên: "Enter your name:"
  3. Đọc tên người dùng bằng phương thức std::io phù hợp.
  4. 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
    
}
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch Rust online