문제:
알고리즘 풀이 연습중 띄어쓰기와 엔터가 포함되어 있는
1 2
2 3
4 5
위와 같은 값을 input으로 받아오는 부분에서 막힘
# Readline 모듈
: Node.js에서 입력을 받을 때 사용하는 내장 모듈
: Readable Stream 에서 한 번에 한 줄 씩 데이터를 읽기 위한 인터페이스를 제공하는 모듈
- 터미널에서 입력을 읽고 처리하는 기능을 제공한다.
- 주로 CLI 프로그램에서 사용자 입력을 받을 때 사용
- 이벤트 기반으로 동작 (line, close 등)
[ 사용방법 ]
1. readline 모듈 불러오기
- require 메서드를 사용하여 외부 모듈인 readline을 불러온다.
const readline = require("readline");
2. readline 인터페이스 생성
- readline 의 createInterface 메서드를 이용하여 Interface 인스턴스를 생성
- 입력값과 출력값을 지정해준다.
const rl = readline.createInterface({
input: process.stdin, // 입력을 read하는 통로
output: process.stdout, // 출력을 write하는 통로
});
process.stdin : standard input 에 대한 readable stream
process.stdout : standard output 에 대한 writable stream
* stream은 데이터, 파일의 흐름, 프로그램과 환경 사이에 연결된 입출력 통로
3. 입출력 처리
rl.on으로 이벤트와 콜백함수를 전달
- line : 입력받은 값을 한 줄씩 읽어 문자열 타입으로 전달하는 이벤트
- close : 더 이상 입력값이 없을 경우에 해당하는 이벤트
// 입력값을 사용할 수 있는 input type으로 변환
rl.on("line", (line) => {
/*입력값 처리 코드*/
rl.close(); // 인터페이스를 종료하여 무한히 입력받지 않도록 함
});
// 실제 함수
rl.on("close", () => {
/*입력 이후 실행 코드*/
process.exit(); // 프로세스 종료
});
or
let arr = []
rl.on("line", (line) => {
/*입력값 처리 코드*/
방법1. 띄어쓰기, 엔터가 포함된 input 값을 array에 넣어버림
arr.push(line.split(" ").map(Number))
}).on("close", ()=>{
/*입력 이후 실행 코드*/
arr를 구분하여 사용
process.exit();
})
출처: https://velog.io/@pexe99/JavaScript-readline-%EA%B7%B8%EA%B2%8C-%EB%AD%94%EB%8D%B0
'Javascript' 카테고리의 다른 글
[JS] 이벤트 버블링, 이벤트 캡처링 ♦︎ (0) | 2024.07.05 |
---|---|
[JS] Javascript 문법적 특징 (1) | 2024.07.01 |
Javascript 기초문법 - class (2) | 2024.06.28 |
[JS] Prototype (1) | 2024.05.26 |
[JS] 모듈, ESM, export, import ♦︎ (2) | 2023.11.15 |