복습 - Book 구조체 만들기
Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 26번째.
챌린지
쉬움책 제목, 저자 이름, 출판 연도(정수), 페이지 수(정수)의 네 가지 입력을 받게 됩니다. String 타입의 title, String 타입의 author, i32 타입의 year, i32 타입의 pages라는 네 개의 필드를 가진 Book 구조체를 정의하세요. 입력받은 값들을 사용하여 이 구조체의 인스턴스를 생성하고 책 정보를 출력하세요.
요구 사항:
- 다음 필드를 가진
Book구조체를 정의합니다:title: String,author: String,year: i32,pages: i32 - 첫 번째 입력을 책 제목으로 읽습니다
- 두 번째 입력을 저자 이름으로 읽습니다
- 세 번째 입력을 읽고 출판 연도를 위해
i32로 변환합니다 - 네 번째 입력을 읽고 페이지 수를 위해
i32로 변환합니다 - 이 값들로
Book구조체의 인스턴스를 생성합니다 - 아래에 표시된 정확한 형식으로 책 정보를 출력합니다
입력:
- 첫 번째 줄: 책 제목 (예:
The Rust Programming Language) - 두 번째 줄: 저자 이름 (예:
Steve Klabnik) - 세 번째 줄: 정수 형태의 출판 연도 (예:
2018) - 네 번째 줄: 정수 형태의 페이지 수 (예:
552)
출력:
- 첫 번째 줄:
Book: [title] - 두 번째 줄:
Author: [author] - 세 번째 줄:
Year: [year] - 네 번째 줄:
Pages: [pages]
직접 해보기
use std::io;
// TODO: title, author, year, pages 필드를 가진 Book 구조체를 여기에 정의하세요
fn main() {
// 책 제목 읽기
let mut title = String::new();
io::stdin().read_line(&mut title).expect("Failed to read line");
let title = title.trim().to_string();
// 저자 이름 읽기
let mut author = String::new();
io::stdin().read_line(&mut author).expect("Failed to read line");
let author = author.trim().to_string();
// 출판 연도 읽기
let mut year_input = String::new();
io::stdin().read_line(&mut year_input).expect("Failed to read line");
let year: i32 = year_input.trim().parse().expect("Failed to parse year");
// 페이지 수 읽기
let mut pages_input = String::new();
io::stdin().read_line(&mut pages_input).expect("Failed to read line");
let pages: i32 = pages_input.trim().parse().expect("Failed to parse pages");
// TODO: 입력값을 사용하여 Book 구조체의 인스턴스를 생성하세요
// TODO: 요구된 형식으로 도서 정보를 출력하세요
}