📝 한 줄 값 입력받기
자바스크립트에서는 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]]