تمرين إعادة البناء
File Line Counter
أعد كتابة عداد ملف يحسب الأسطر والكلمات والمحارف.
rust
~12 دقيقة
مبتدئ
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
use std::env;
use std::fs::File;
use std::io::{self, BufRead, BufReader};
fn main() -> io::Result<()> {
let path = match env::args().nth(1) {
Some(path) => path,
None => {
println!("Usage: line_counter <file>");
return Ok(());
}
};
let file = File::open(&path)?;
let reader = BufReader::new(file);
let mut lines = 0usize;
let mut words = 0usize;
let mut characters = 0usize;
// مر على كل سطر — Walk through each line
for line_result in reader.lines() {
let line = line_result?;
lines += 1;
words += line.split_whitespace().count();
characters += line.chars().count();
}
println!("File: {path}");
println!("Lines: {lines}");
println!("Words: {words}");
println!("Characters: {characters}");
Ok(())
}اكتب هنا