• Rust中的输入输出格式变化(非常详细)


    1.字符类型输入,从键盘输入啥,输出就是啥。
    use std::io;
    fn main() {
    let mut guess = String::new();
    io::stdin().read_line(&mut guess).expect("Failed to read line");
    println!("You guessed: {}",guess);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    2.输入整数字符类型,输出整数类型
    use std::io::stdin;
    fn main() {
        let mut input = String::new();
        stdin().read_line(&mut input)
            .ok()
            .expect("Failed to read line");  
        let i: i32 = match input.trim().parse() {
            Ok(num) => num,
            Err(_) => {
                 println!("请输入整数,请勿输入无关符号!");
                 return;
            }
        };
        println!("i: {i}");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    使用 trim() 去除多余的符号,例如回车号,然后使用 parse() 来做数据转换

    3.输入字符串[1,2,4,5,6],输出整型数组vec类型
    use std::io::stdin;
    fn main() {
        let mut vec:Vec<i32>=Vec::new();
        let mut input = String::new();
        stdin().read_line(&mut input)
            .ok()
            .expect("Failed to read line");
    
        let first_last_off: &str = &input[1..input.len() - 2];
        println!("{}", first_last_off);
        let v:Vec<&str> = first_last_off.split(',').collect();
        for i in v{
            let i:i32=match i.trim().parse(){
                Ok(num)=>num,
                Err(_)=>{
                    println!("请输入整数,请勿输入无关符号!");
                    return;
            }
        };
            vec.push(i);
    }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    4.例子:求一个数组中次数大于n/3的数,返回数组
    use std::io::stdin;
    use std::collections::HashMap;
    
    pub fn majority_element(nums: Vec<i32>)->Vec<i32>{
        let n=nums.len();
        let l=n/3;
        let mut V:Vec<i32>=Vec::new();
        let mut map=HashMap::new();
        for word in nums{
            let count =map.entry(word).or_insert(0);
            *count+=1;
        };
        println!("{:#?}",map);
        for (k,v) in map{
            if(v>l){
                V.push(k)
            }
        }
        V
    }
    fn main() {
        let mut vec:Vec<i32>=Vec::new();
        let mut num:Vec<i32>=Vec::new();
        let mut input = String::new();
        stdin().read_line(&mut input)
            .ok()
            .expect("Failed to read line");
        let first_last_off: &str = &input[1..input.len() - 2];
        println!("{}", first_last_off);
        let v:Vec<&str> = first_last_off.split(',').collect();
        for i in v{
            let i:i32=match i.trim().parse(){
                Ok(num)=>num,
                Err(_)=>{
                    println!("请输入整数,请勿输入无关符号!");
                    return;
            }
        };
            vec.push(i);
    }
    num=majority_element(vec);
    println!("{:?}",num)
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    5.各种类型的互相转换
    
    let int_value = 5;
    //整型转字符串
    let string_value = int_value.to_string();
    
    //字符串转32位有符号整型
    let back_int = string_value.parse::<i32>().unwrap();
    
    // 字符串转32位无符号整型
    let back_int = string_value.parse::<u32>().unwrap();
    
    //字符串转16位有符号整型
    let back_int = string_value.parse::<i16>().unwrap(); 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    Java并发线程池原理源码深入分析与调优实战
    二、uboot_源码分析
    一些场景题
    4基于pytorch的蚁群算法求解TSP(旅行商问题),访问一座城市并回到最初位置的最佳路径,解决组合中的NP问题。程序已调通,替换自己的数据可以直接运行。
    C和C++的区别(4) C++支持函数重载
    【云原生】云原生与DevOps的结合:提升软件开发与交付的效率
    java基础1
    milvus的GPU索引
    14 MySQL-视图
    数据响应式原理
  • 原文地址:https://blog.csdn.net/phthon1997/article/details/126851162