首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Rust中的stdin中读取一行来裁剪换行符和回车符?

如何从Rust中的stdin中读取一行来裁剪换行符和回车符?
EN

Stack Overflow用户
提问于 2019-05-23 04:17:33
回答 1查看 2.5K关注 0票数 3

我想从标准输入中读取一行,并将其存储在一个字符串变量中,然后将字符串值解析为一个u32整数值。read_line()方法读取2个额外的UTF-8值,这会导致解析方法死机。

下面是我试着去掉的回车和新行:

代码语言:javascript
运行
复制
use std::io;
use std::str;

fn main() {
    let mut input = String::new();
    match io::stdin().read_line(&mut input) {
        Ok(n) => {
            println!("{:?}", input.as_bytes());
            println!("{}", str::from_utf8(&input.as_bytes()[0..n-2]).unwrap());
        }
        Err(e) => {
            println!("{:?}", e);
        }
    }
}

在Rust中做这件事最惯用的方式是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-23 04:42:22

String有一个返回修剪后的字符串片的trim method

代码语言:javascript
运行
复制
use std::io;
use std::str;

fn main() {
    let mut input = String::new();
    match io::stdin().read_line(&mut input) {
        Ok(_) => {
            let trimmed_input = input.trim();
            println!("{:?}", trimmed_input.as_bytes());
            println!("{}", trimmed_input);
        }
        Err(e) => {
            println!("{:?}", e);
        }
    }
}

"test"输入的结果:

代码语言:javascript
运行
复制
[116, 101, 115, 116]
test
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56264376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档