小编Div*_*oor的帖子

强制 io::stdio 和 BufReader 之间的 BufRead 特性兼容性

我正在尝试键入一个io::stdio实例并BufReader包装一个文件,以便我可以编写假设缓冲输入源的代码。我尝试了几种尝试将 an 转换io::stdio()为一种BufRead类型的变体,但都因以下一个或多个变体而失败:

error: mismatched types:
 expected `std::io::stdio::StdinLock<'_>`,
    found `std::io::buffered::BufReader<std::fs::File>`
(expected struct `std::io::stdio::StdinLock`,
    found struct `std::io::buffered::BufReader`) [E0308]
csv_to_json.rs:26     reader = BufReader::new(file.unwrap());
Run Code Online (Sandbox Code Playgroud)

这是代码:

use std::io;
use std::io::BufReader;
use std::io::prelude::*;
use std::env;
use std::process::exit;
use std::fs::File;

fn usage() {
    println!("Usage: cat input.csv | csv_to_json");
}

fn main() {
    let stdin = io::stdin();
    let mut reader = stdin.lock();   // Assignment. (1)
    let args: Vec<String> = env::args().collect();

    if args.len() > 1 {
        usage();
        exit(1);
    } else …
Run Code Online (Sandbox Code Playgroud)

rust

5
推荐指数
2
解决办法
1178
查看次数

标签 统计

rust ×1