반응형
Node.js 표준입출력
readline을 사용하여 사용자에게 입력을 받을 수 있다.
한 줄의 입력만 받고 프로그램 종료하는 방법
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin, output: process.stdout
});
rl.on("line", function(line) {
console.log("hello !", line);
rl.close();
})
.on("close", function() {
process.exit();
});
예시: 두 수를 공백으로 구분지어 입력 -> 합을 구해 출력
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ')
.map((el) => parseInt(el));
})
.on('close', function () {
console.log(input[0] + input[1]);
process.exit();
});
// 입력 : 1 2
// 출력 : 3
두 줄, 세 줄의 입력 받는 방법
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input.push(line);
})
.on('close', function () {
console.log(input);
process.exit();
});
* 유의사항
이 코드를 콘솔에서 실행하면 close 이벤트에 걸리지 않아서 console.log가 찍히지 않고 입력만 계속해서 받게 된다.
콘솔에서는 interactive shell이 계속 열려있기 때문에 자동으로 close가 호출되지 않기 때문이다.
하지만 이 코드를 구름 ide에서 실행하게 되면 EOF에 걸리게 되어 정상적으로 console.log가 찍힌다.
백준 사이트나 구름 ide 같은 경우 알고리즘을 테스트하기 위한 테스트 데이터들이 파일에 존재한다.
콘솔에서 실행하면 키보드로부터 입력을 받기 때문에 계속해서 입력 이벤트를 대기하게 되지만,
테스트 데이터를 파일로 받게 되는 경우에는, 파일의 데이터가 끝이 나면 close되어 코드가 끝난다.
반응형
'Programming > JavaScript' 카테고리의 다른 글
[JavaScript] e.preventDefault()와 e.stopPropagation()의 차이점 (2) | 2023.01.05 |
---|---|
[JavaScript] Set 사용법 (0) | 2020.03.23 |
[jQuery] jQuery 요소 찾기, 텍스트 바꾸기, 요소 변경/생성 (0) | 2019.12.22 |
[Node.js] Node.js로 서버 구축하기 (0) | 2019.12.22 |
AJAX란 (0) | 2019.12.21 |
댓글