相关疑难解决方法(0)

如何在Rust中读取用户输入?

编者注:这个问题是指在Rust 1.0之前的Rust部分,但是一般概念在Rust 1.0中仍然有效.

我打算制作一个标记器.我需要阅读用户键入的每一行,并在用户按下后停止阅读ctrl- D.

我四处搜索,只在Rust IO上找到了一个甚至没有编译的例子.我查看了io模块的文档,发现该read_line()函数是ReaderUtil界面的一部分,但stdin()返回了一个Reader.

我想要的代码在C++中基本上如下所示

vector<string> readLines () {
    vector<string> allLines;
    string line;

    while (cin >> line) {
        allLines.push_back(line);
    }

    return allLines;
}
Run Code Online (Sandbox Code Playgroud)

io input rust

43
推荐指数
3
解决办法
3万
查看次数

如何从标准输入读取单个字符串?

std :: io文档中没有直接接收字符串作为变量的指令,但我认为这应该有效:

use std::io;
let line = io::stdin().lock().lines().unwrap();
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

src\main.rs:28:14: 28:23 error: unresolved name `io::stdin`
src\main.rs:28          let line = io::stdin.lock().lines().unwrap();
                                   ^~~~~~~~~
Run Code Online (Sandbox Code Playgroud)

为什么?

我正在使用每晚的Rust v1.0.

string stdin rust

11
推荐指数
1
解决办法
8494
查看次数

从 stdin 读取整行,包括 \n 直到文件结尾

我想将此 Python 代码转换为 Rust:

for line in sys.stdin:
   do something to the whole line including \n
Run Code Online (Sandbox Code Playgroud)

但我只能找到读取单个整行(包括\n)的示例或不读取\n.

看起来这应该是世界上最简单的,但我一直找不到它。

rust

5
推荐指数
1
解决办法
3100
查看次数

如何从控制台有效地读取一行用户输入?

我最近学习了如何使用ioRust文档读取输入,但有没有" 简单 "的方法来读取控制台输入?我的根源是大量挖掘C++,所以从控制台获取输入就像这样简单std::cin >> var.但在Rust,我正在做:

for line in io::stdin().lines() {
    print!("{}", line.unwrap());
    break;
}
Run Code Online (Sandbox Code Playgroud)

这会读取一次输入,但for循环似乎是一种非常笨拙的方法来实现这一点.我怎么能轻松做到这一点?

rust

2
推荐指数
3
解决办法
7218
查看次数

标签 统计

rust ×4

input ×1

io ×1

stdin ×1

string ×1