은도미
은도미 개발일지
은도미
전체 방문자
오늘
어제
  • 분류 전체보기 (46)
    • DAILY (0)
    • BOOKS (0)
    • STUDY (17)
      • 면접준비 (3)
      • 모던 자바스크립트 Deep Dive (10)
      • Git (1)
    • PROGRAMING (14)
      • HTML (0)
      • CSS (0)
      • JS (0)
      • TYPESCRIPT (7)
      • NODE.JS (2)
      • Express.js (1)
      • React (3)
      • Nextjs (1)
    • ALGORITHM (5)
      • JS (1)
      • PYTHON (3)
      • 백준 (0)
      • 프로그래머스 (0)
      • 기타 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ㅂ

최근 댓글

최근 글

티스토리

은도미

은도미 개발일지

Javascript의 기본입출력(readline)
ALGORITHM/JS

Javascript의 기본입출력(readline)

2022. 3. 10. 15:20

📝 한 줄 값 입력받기

자바스크립트에서는 readline 모듈을 이용하면 콘솔을 통해 값을 입력받을 수 있다.

line 이벤트는 스트림이 \n을 받을 때마다 발생하며, close이벤트는 스트림이 end, finished이벤트를 받을때 또는 ^C를 받았을때 호출된다.

 

const readline = require("readline");

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});

rl.on("line", (line) => {
console.log("input: ", line);
rl.close();
});

rl.on('close', () => {
process.exit();
})

- 모듈 가져오기

const readline = require("readline");

- readline 모듈을 이용해 입출력을 위한 인터페이스 객체 생성

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});

- rl 변수

rl.on("line", (line) => {
// 한 줄씩 입력받은 후 실행할 코드
// 입력된 값은 line에 저장된다.
rl.close(); // 필수!! close가 없으면 입력을 무한히 받는다.
});
rl.on('close', () => {
// 입력이 끝난 후 실행할 코드
process.exit();
})

 

 

📝 공백을 기준으로 값 입력받기

const readline = require("readline");

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});

let input = []

rl.on("line", (line) => {
input = line.split(' ').map(el => parseInt(el)); // 1 2 3 4
rl.close();
});

rl.on('close', () => {
input.forEach(el => {
console.log(el);
})
process.exit();
})

// 입력
// 1 2 3

// 출력
// 1
// 2
// 3

  • 입력되는 것은 모두 문자열이기 때문에 숫자 연산을 할 수 없다. 따라서 숫자 연산을 위해 map() 함수를 사용하고 parseInt()를 이용해 모든 문자를 숫자로 변환해준다.

📝 여러 줄 입력받기

const readline = require("readline");

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});

let input = []

rl.on("line", (line) => {
input.push(line);
});

rl.on('close', () => {
console.log(input);
process.exit();
})

// 입력
// 1
// 2
// a
// b


// 출력
// ['1', '2', 'a', 'b']
  • 입력 종료는 ctrl + c

 

📝 공백이 포함된 문자 여러 줄 입력받기

const readline = require("readline");

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});

let input = []

rl.on("line", (line) => {
input.push(line.split(' ').map(el => parseInt(el)));
});

rl.on('close', () => {
console.log(input);
process.exit();
})

// 입력
// 1 2 3
// 4 5 6

// 출력
// [[1, 2, 3], [4, 5, 6]]

    은도미
    은도미
    아름다움은 매일 있어.
    hELLO. 티스토리 스킨을 소개합니다.
    제일 위로

    티스토리툴바