Node.js에서 입력받는 방법

자바스크립트에서는 prompt를 활용해서 간단하게 입력받는 방법이 있습니다. 그런데 node.js에서는 입력받는 방법이 좀 다르네요.

프로그래머스 코딩 테스트에서는 node.js만 있고 자바스크립트는 없어서 한번 알아봤습니다.

fs의 readFileSync로 입력받기

var fs = require('fs'); var input = fs.readFileSync('/dev/stdin').toString().split(' ');
Code language: JavaScript (javascript)

이 방법을 주로 사용하기는 하지만 테스트 사이트에 따라 잘 안되는 경우도 있습니다. 그런경우에는 아래 readline를 사용합니다.

readline 활용 입력받기

const readline = require("readline"); const std = readline.createInterface({ input: process.stdin, output: process.stdout }); /* 문자형 숫자를 두개 입력받아 숫자로 변환한후 두개를 더해서 출력하는 예제  */ std.on('line',(line)=>{     input = line.split(' ').map(el => Number(el));     console.log(input[0] + input[1]);     std.close(); }).on('close',()=>process.exit())
Code language: JavaScript (javascript)
node.js 입력받기
실행결과

위의 예제는 숫자 두개를 입력받아서 이를 더해서 출력하는 예입니다. job의 기본형 문제입니다. std.close()는 문자를 한번만 입력받고 종료하라는 말입니다. 이게 없으면 콘솔창에서 계속 입력대기하고 있기 때문에 실행이 제대로 안됩니다.

콘솔창 여러줄 입력시 입력종료 방법

여러줄의 문자열을 입력 받는 경우도 있을 수 있습니다. 이때 콘솔창에서 입력을 종료시키기 위해 문자입력을 끝내려면 [엔터치고]+[CTRL+D] 입니다.

/* 여러줄에 걸쳐서 문자를 입력받고 출력하는 예제 문자입력을 끝내려면 [엔터치고]+[CTRL+D] */ console.log("여러줄을 입력해보세요 !!"); input=[]; std.on("line"function(line){     input.push(line); }).on("close",function(){     console.log(input);     process.exit(); });
Code language: JavaScript (javascript)

코딩 완전 초보라서 이제 한걸음씩 배워나가고 있습니다. 구글 검색을 통해 이곳 저곳을 기웃거리며 오늘도 조금 더 나아지려고 노력합니다.

안녕히 계세요. nscworl.com..

답글 남기기

3 + 6 =