gpt4 book ai didi

rust - 如何从 stdin 读取一行?

转载 作者:行者123 更新时间:2023-11-29 07:40:57 25 4
gpt4 key购买 nike

我要的是 C 中的 fgets() 的等价物。

let line = ...;
println!("You entered: {}", line);

我读过 How to read user input in Rust? , 但它询问如何读取多行;我只想要一根线。

我还读了How do I read a single String from standard input? ,但我不确定它的行为是否像 fgets()sscanf("%s",...)

最佳答案

How to read user input in Rust?您可以看到如何遍历所有行:

use std::io::{self, BufRead};

fn main() {
let stdin = io::stdin();
for line in stdin.lock().lines() {
println!("{}", line.unwrap());
}
}

您也可以在没有 for 循环的情况下手动迭代:

use std::io::{self, BufRead};

fn main() {
let stdin = io::stdin();
let mut iterator = stdin.lock().lines();
let line1 = iterator.next().unwrap().unwrap();
let line2 = iterator.next().unwrap().unwrap();
}

你不能写一行代码来做你想做的事。但以下内容只读了一行(与 How do I read a single String from standard input? 中的答案完全相同):

use std::io::{self, BufRead};

fn main() {
let stdin = io::stdin();
let line1 = stdin.lock().lines().next().unwrap().unwrap();
}

您还可以使用 text_io用于 super 简单输入的箱子:

#[macro_use] extern crate text_io;

fn main() {
// reads until a \n is encountered
let line: String = read!("{}\n");
}

关于rust - 如何从 stdin 读取一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30186037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com