UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド
前スレ
Part9 http://hibari.2ch.net/test/read.cgi/tech/1205795434/
Part8 http://pc11.2ch.net/test/read.cgi/tech/1147946176/
Part7 http://pc8.2ch.net/test/read.cgi/tech/1127373405/
Part6 http://pc8.2ch.net/test/read.cgi/tech/1116908090/
Part5 http://pc8.2ch.net/test/read.cgi/tech/1105723117/
Part4 http://pc5.2ch.net/test/read.cgi/tech/1095843584/
Part3 http://pc5.2ch.net/test/read.cgi/tech/1085930894/
Part2 http://pc5.2ch.net/test/read.cgi/tech/1055110889/
Part1 http://pc2.2ch.net/tech/kako/992/992057422.html
Part3のミラー
http://makimo.to/2ch/pc5_tech/1085/1085930894.html
Part2のミラー
http://makimo.to/2ch/pc5_tech/1055/1055110889.html
UNIXプログラミング質問すれ Part10
レス数が900を超えています。1000を超えると表示できなくなるよ。
1unco ◆manko/yek.
2011/04/18(月) 17:06:36.77943デフォルトの名無しさん
2023/08/26(土) 21:18:17.35ID:C41SkMxi C言語とRustについて聞かれているのに
一生懸命Rubyで答えてどうするの?
ちょっと心配した方が良いレベルやぞ
一生懸命Rubyで答えてどうするの?
ちょっと心配した方が良いレベルやぞ
944デフォルトの名無しさん
2023/08/27(日) 03:03:02.52ID:/wQZGqy6 Rustでは文字列から他の型(数値など)への変換やその逆を自動でやってくれる(serdeがある)
以下のように(好きな型名とフィールド名で)構造体を定義するだけで動く
#[derive(Debug, serde::Deserialize)]
struct Passwd {
name: String,
passwd: String,
uid: u32,
gid: u32,
gecos: String,
dir: String,
shell: String,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
// CSVリーダーをヘッダ無しで区切り文字コロンでPASSWD_PATHファイルから読み込みで作成
let mut reader = csv::ReaderBuilder::new()
.has_headers(false)
.delimiter(b':')
.from_reader(std::fs::File::open(PASSWD_PATH)?);
// 各行を構造体Passwdへ読み込む (様々なエラーを捕捉できるようResult型が返る)
for result in reader.deserialize::<Passwd>() {
let passwd = result?;
println!("{passwd:?}");
}
Ok(())
}
以下のように(好きな型名とフィールド名で)構造体を定義するだけで動く
#[derive(Debug, serde::Deserialize)]
struct Passwd {
name: String,
passwd: String,
uid: u32,
gid: u32,
gecos: String,
dir: String,
shell: String,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
// CSVリーダーをヘッダ無しで区切り文字コロンでPASSWD_PATHファイルから読み込みで作成
let mut reader = csv::ReaderBuilder::new()
.has_headers(false)
.delimiter(b':')
.from_reader(std::fs::File::open(PASSWD_PATH)?);
// 各行を構造体Passwdへ読み込む (様々なエラーを捕捉できるようResult型が返る)
for result in reader.deserialize::<Passwd>() {
let passwd = result?;
println!("{passwd:?}");
}
Ok(())
}
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★9 [BFU★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 高市首相が異例の“買春行為の罰則化の検討”に言及…世界では“買う側”に罰則を科すのが先進国のスタンダード ★2 [樽悶★]
- 【硬貨】500円だと思ったら「500ウォンが入っていた」価値は約10分の1 全国で飲食店などで“500ウォントラブル”相次いで報告 [ぐれ★]
