Menu
Coddy logo textTech

복습 - Book 구조체 만들기

Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 26번째.

challenge icon

챌린지

쉬움

책 제목, 저자 이름, 출판 연도(정수), 페이지 수(정수)의 네 가지 입력을 받게 됩니다. 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: 요구된 형식으로 도서 정보를 출력하세요
}

Logic & Flow의 모든 레슨