Menu
Coddy logo textTech

まとめ - Book構造体の作成

CoddyのRustジャーニー「Logic & Flow」セクションの一部 — レッスン 26/66。

challenge icon

チャレンジ

簡単

4つの入力(本のタイトル、著者名、出版年(整数)、ページ数(整数))を受け取ります。4つのフィールドを持つBook構造体を定義してください:String型のtitleString型のauthori32型のyear、そしてi32型のpagesです。入力値を使用してこの構造体のインスタンスを作成し、本の情報を表示してください。

要件:

  • フィールドtitle: Stringauthor: Stringyear: i32pages: i32を持つBook構造体を定義する
  • 1番目の入力を本のタイトルとして読み込む
  • 2番目の入力を著者名として読み込む
  • 3番目の入力を読み込み、出版年としてi32に変換する
  • 4番目の入力を読み込み、ページ数としてi32に変換する
  • これらの値を使用してBook構造体のインスタンスを作成する
  • 以下の形式で本の情報を出力する

入力:

  • 1行目: 本のタイトル (例: The Rust Programming Language)
  • 2行目: 著者名 (例: Steve Klabnik)
  • 3行目: 整数としての出版年 (例: 2018)
  • 4行目: 整数としてのページ数 (例: 552)

出力:

  • 1行目: Book: [title]
  • 2行目: Author: [author]
  • 3行目: Year: [year]
  • 4行目: Pages: [pages]

自分で試してみよう

use std::io;

// TODO: ここでBook構造体を定義します。フィールド:title, author, year, pages

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のすべてのレッスン