Home > Rust > 러스트 표준 입출력 방법 정리

러스트 표준 입출력 방법 정리
Rust Baekjoon

최근에 러스트를 공부하기 시작하면서 러스트로 백준을 풀어보려 하고 있다. 이 과정에서 러스트의 입출력은 다른 언어보다 조금 더 복잡하다고 느끼고 있다. 그래서 개인적인 기록 용도로 입출력 방법을 정리해두고자 한다.

입력

한 줄 입력

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

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
}

String 변수를 하나 만든 뒤 해당 변수 값을 받아서 read_line으로 받은 뒤 unwrap()으로 푼다.

여러 줄 입력

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

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();

    let n = input.trim().parse::<usize>().unwrap();

    for _ in 0..n {
        input.clear();
        io::stdin().read_line(&mut input).unwrap();

    }

}

처음에는 몇 개의 줄을 입력받을 것인지 숫자를 입력하고, 반복문으로 그 숫자만큼 줄을 입력받는 방식으로 구현했다.

여러 숫자 입력

use std::io::{stdin, Read};

fn main() {
    let mut input = String::new();
    stdin().read_line(&mut input).unwrap();
    let mut input = input.split_ascii_whitespace().flat_map(str::parse::<usize>);

    let n = input.next().unwrap();


}

숫자를 공백 단위(1 3 4 5 6…)과 같이 입력받았을 때 사용하는 방식이다. 여기서 usize로 파싱하는 부분만 빠지면 문자열을 공백으로 입력받을 수도 있다.

출력

한 줄 출력

fn main() {
  let x = 3;
  println!("{x}");
}