X-Git-Url: https://i11git.iti.kit.edu/anon-gitweb/?p=Mitarbeiter%2FTim-Zeitz%2Fstud-rust-base.git;a=blobdiff_plain;f=src%2Fbin%2Fcompare_vector.rs;h=0a1849255947f9f5d0128360438b01f4cfe333df;hp=760496cbc36798a9c594a8b34615e2c37b168ed7;hb=7e14e0703289af36efa95d687c71116a7a53a450;hpb=174bad4ee583a72df07c23f242654a454a07b9f6 diff --git a/src/bin/compare_vector.rs b/src/bin/compare_vector.rs index 760496c..0a18492 100644 --- a/src/bin/compare_vector.rs +++ b/src/bin/compare_vector.rs @@ -1,12 +1,8 @@ -extern crate stud_rust_base; use stud_rust_base::{io::*, cli::CliErr}; use std::{env, fmt::Display, error::Error}; fn main() -> Result<(), Box> { - let mut args = env::args(); - args.next(); - - match &args.collect::>()[..] { + match &env::args().skip(1).collect::>()[..] { [data_type, input1, input2] => { match data_type.as_ref() { "i8" => { compare_values(&Vec::::load_from(input1)?, &Vec::::load_from(input2)?); Ok(()) }, @@ -65,7 +61,8 @@ fn compare_values(values1: &[T], values2: &[T]) where T: PartialOrd { if values1.len() != values2.len() { - println!("Can only compare vectors of equal size. The first vector has {} elements. The second vector has {} elements.", values1.len(), values2.len()); + println!("0"); + eprintln!("Can only compare vectors of equal size. The first vector has {} elements. The second vector has {} elements.", values1.len(), values2.len()); return } @@ -84,16 +81,18 @@ fn compare_values(values1: &[T], values2: &[T]) where match first_diff { Some(index) => { - println!("The vectors differ."); - println!("{} elements are smaller in the first vector.", v1_smaller_count); - println!("{} elements are smaller in the second vector.", v2_smaller_count); - println!("{} elements are the same.", values1.len() - v1_smaller_count - v2_smaller_count); - println!("{} elements are different.", v1_smaller_count + v2_smaller_count); - println!("The vectors have {} elements.", values1.len()); - println!("The first element that differs is at index {}.", index); + eprintln!("The vectors differ."); + eprintln!("{} elements are smaller in the first vector.", v1_smaller_count); + eprintln!("{} elements are smaller in the second vector.", v2_smaller_count); + eprintln!("{} elements are the same.", values1.len() - v1_smaller_count - v2_smaller_count); + println!("{}", values1.len() - v1_smaller_count - v2_smaller_count); + eprintln!("{} elements are different.", v1_smaller_count + v2_smaller_count); + eprintln!("The vectors have {} elements.", values1.len()); + eprintln!("The first element that differs is at index {}.", index); }, None => { - println!("The vectors are the same and have {} elements.", values1.len()); + println!("{}", values1.len()); + eprintln!("The vectors are the same and have {} elements.", values1.len()); }, } }