小编abi*_*pip的帖子

Read::read_exact 不填充缓冲区

我有以下代码:

use std::io::{Cursor, BufReader, Read};

fn main() {
    let string = String::from("Cello");
    let bytes = string.as_bytes();
    let cursor = Cursor::new(bytes);
    let mut reader = BufReader::new(cursor);
    let mut buf: Vec<u8> = Vec::with_capacity(4);
    assert_eq!(4, buf.capacity());
    reader.read_exact(&mut buf);
    assert_eq!(4, buf.len()); //thread 'main' panicked at 'assertion failed: `(left == right)`
                              //left: `4`, right: `0`'
}
Run Code Online (Sandbox Code Playgroud)

根据std::io::read_exact的文档,它将“读取填充 buf 所需的确切字节数”。但在这种情况下,尽管有 4 个字节的容量,但没有字节被读入 vec。这是怎么回事?

io rust vec

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

标签 统计

io ×1

rust ×1

vec ×1