スキップしてメイン コンテンツに移動

Rustで科学計算 (1) データのasciiファイル書き出し

結論


use std::io::prelude::*;
use std::fs::File;

fn main() {
    
    /* この辺で計算 */
    
    let s = format!("filename_{:03}.txt", i );
    let mut buffer = File::create(s).unwrap();
    write!(buffer, "{:.04} {:.04} {:.04} {:.04}\n", t, x, y, z );
}

ファイルの書き出し

計算結果をファイルに書き出すためには, sをファイル名としてlet mut buffer = File::create(s).unwrap();により出力ファイルを用意する. 既に同名のファイルが存在する場合には上書きされる (もとのデータは消去される). あとはwrite!(buffer, 文字列)により用意したバッファーに任意に書き込んでいけばよい.

本当は書き出し失敗用のエラーに対処するようにコードを書く必要がある (し, 上の例だとコンパイル時に警告される) が, 個人使用する上では必要性を感じないので, とりあえず放置してある. コードの可読性の方が大事.

数値出力のフォーマット

整数型の場合, "{}", iとかしておけばよい. 桁数をそろえてゼロ埋めするには, 例えば"{:04}", iで4桁になる.

実数型の場合, "{:.04}", tで小数点以下4桁まで. 指数表記は"{:e}"とか "{:.03e}"みたいな感じ.

コメント