ALGORITHM

Node.js 로 입력 받기(fs모듈, readline모듈)

연듀 2021. 6. 3. 19:57

 

fs 모듈

 

 

테스트 케이스는 파일로 존재하고, fs.reqdFileSync('/dev/stdin').toString() 를 통해 문자열을 읽는다.

split을 통해 문자열을 괄호안의 기준으로 끊어 input 배열로 반환한다.

 

 

 

한 줄 입력받기

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split(' ');

const num = Number(input);

for (let i = 1; i <= num; i++) {
  console.log(i);
}

 

 

 

여러 줄 입력받기

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');

const count = input[0];
const numbers = [];

for (let i = 1; i < input.length; i++) {
  if (input[i] !== '') {
    numbers.push(input[i].split(' '));
  }
}

for (let i = 0; i < numbers.length; i++){
  const num1 = Number(numbers[i][0]);
  const num2 = Number(numbers[i][1]);

  console.log(num1 + num2);
}

 

 

 

readline 모듈

 

 

매개변수 line이 입력 값으로 할당이 되고, 문자열이다.

 

 

한줄 입력받기

const readline = require('readline');

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

rl.on('line', function(line) {
  console.log(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();
  });

 

여러 줄 입력받기

 

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();
});

 

 

참고

 https://velog.io/@wow/Node.js-%EC%9E%85%EB%A0%A5-%EB%B0%9B%EA%B8%B0