スポンサーリンク
// 入出力を使う use std::io; fn main() { // 変数 buffer を定義 let mut buffer = String::new(); // bufferへ文字列入力 io::stdin().read_line(&mut buffer); // bufferを表示 println!("{}",buffer); }
// 入出力を使う use std::io; fn main() { // 変数 buffer を定義 let mut buffer = String::new(); io::stdin().read_line(&mut buffer); //標準入力から入力 // 型指定 :i32 が必要 // read_lineから読み込んだ文字列に対してはtrim()が必要 let val:i32 = buffer.trim().parse().unwrap(); // bufferを表示 println!("{}",val); }
// ファイル入力を使う use std::{fs::File, io::Read}; fn main() { let filename = "test.txt";
// ファイル入力を使う let mut file = File::open(filename).expect("file not found"); // 変数 buffer を定義 let mut buffer = String::new(); // ファイルから入力 file.read_to_string(&mut buffer).expect("something went wrong reading the file"); // ファイルを閉じる方法 // 方法1 スコープを抜けるとdropが呼ばれる(C++のデストラクタのようなもの) // 方法2 明示的にdropを呼び出す drop(file); // 明示的にdropを呼び出す // bufferを表示 println!("{}",buffer); }
use std::fs::File; // write!やwrite_allを使うのに必要 use std::io::Write; // 戻り値は std::io::Result<()> 型 // 最後に OK(()) を返す。 // これを入れないとwrite_allなどが使えない fn main()-> std::io::Result<()> { let filename = "test.txt"; // ファイル入力を使う let mut file = File::create(filename)?; // 末尾の ? は例外処理のようなもの関連 // ただしRustには例外がないのであくまでそれっぽく振る舞うだけ。 // 変数 buffer を定義 let _buffer = "hello".to_string(); // ファイルへ書き出し file.write_all(_buffer.as_bytes())?; // こっちも使える // write!(file,"hello2")?; // ファイルを閉じる drop(file); // std::io::Result<()> 型の場合 Ok(()) }