read customer data
This commit is contained in:
@@ -10,8 +10,43 @@ struct CmdArgs {
|
||||
file: String,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
struct Customer {
|
||||
id: u32,
|
||||
arrival_time: u32,
|
||||
service_time: u32,
|
||||
}
|
||||
|
||||
fn read_customers_from_file(path: &Path) -> Vec<Customer> {
|
||||
let file = File::open(path).expect(&format!("Open file {} failed.", path.to_str().expect("Invalid path")));
|
||||
let reader = io::BufReader::new(file);
|
||||
|
||||
let mut customers = Vec::new();
|
||||
|
||||
for line in reader.lines() {
|
||||
let line = line.expect("Read lien failed");
|
||||
let parts: Vec<&str> = line.split_whitespace().collect();
|
||||
if parts.len() != 3 {
|
||||
continue; // or handle the error
|
||||
}
|
||||
|
||||
let customer = Customer {
|
||||
id: parts[0].parse().expect("Invalid ID"),
|
||||
arrival_time: parts[1].parse().expect("Invalid arrival time"),
|
||||
service_time: parts[2].parse().expect("Invalid service time"),
|
||||
};
|
||||
|
||||
customers.push(customer);
|
||||
}
|
||||
customers
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let args = CmdArgs::parse();
|
||||
|
||||
println!("File name: {}", args.file);
|
||||
let customers = read_customers_from_file(Path::new(&args.file));
|
||||
|
||||
for cus in &customers {
|
||||
println!("{:?}", cus);
|
||||
}
|
||||
}
|
||||
|
||||
3
lab1/test_data/1.txt
Normal file
3
lab1/test_data/1.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
1 1 10
|
||||
2 5 2
|
||||
3 6 3
|
||||
Reference in New Issue
Block a user