@TicSo

Как получать в переменную значение из консоли и буфера обмена?

Вносить `путь` из консоли в переменную с помощью команды
`std::io::stdin().read_line(&mut path).unwrap()` получается.

Как сделать возможность получать в переменную `путь` не только
набором с консоли в input, но и копированием в буфер так,
чтобы скопированное в буфер (Ctr+C) попадало в этот инпут и была
возможность его откорректировать и передать в переменную (Enter).

код

use cli_clipboard;
//
use std::time::Duration;
use std::thread::sleep;

fn main() {
    println!("[ - - -\n");

    let mut path = String::new();
    
    loop {
      // clipboard:
      let val = cli_clipboard::get_contents().unwrap();
      // println!("val = {}", &val.to_string().trim());
      
      // input:
      let _io_path = std::io::stdin().read_line(&mut path).unwrap();
      path = path.trim().to_string();
      //
      path = val;
      //
      if path.len() > 0 {
          break;
      }
      sleep(Duration::from_millis(1000));
    }
    
    println!("Путь:\n{}", path);
    cli_clipboard::set_contents("".to_string()).unwrap();

    println!("\n- - - ]");
}

/*
[dependencies]
# https://crates.io/crates/cli-clipboard
cli-clipboard = "0.4.0"
*/

  • Вопрос задан
  • 146 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
Это уже и так из коробки работает в терминале. Не нужно усложнять своё приложение этим.
Попробуй использовать shift+insert или ctrl+shift+v, если у тебя в терминале на ctrl+v пишется ^V.
Либо посмотри настройки.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы