2017-01-09 4 views
0

이 어쩌면 바보하지만 난 여기 구문에 익숙 해요 :누군가이 구문을 도와 줄 수 있습니까?

var stdin = ''; 
process.stdin.on('data', function (chunk) { 
    stdin += chunk; 
}).on('end', function() { 
    var lines = stdin.split('\n'); 
    for(var i=0; i<lines.length; i++) { 
    process.stdout.write(lines[i]); 
    } 
}); 

I 해요 프로그램을 작성하는데 그 사각형 내가 할 방법을 알고,하지만 난 이런 종류의 발생 적이없는 번호, 구조의. 루프를 이해하고 process.stdout.write은 본질적으로 console.log입니다. 테스트 사례 입력은 5와 25입니다. 출력은 25와 625 여야합니다.

여기서 코드를 작성해야합니까?

+0

관련없는 두 가지 질문이 있습니다. 번호를 제곱하는 프로그램을 작성하는 방법과 구문/구조가 ... – Li357

+2

여기에서 시작할 수 있습니다. https://nodejs.org/api/ – osmanraifgunes

답변

2

당신은 파일 sample.js에 넣어 그것을 실행할 수 있습니다

node sample.js 

process.stdin 예를 들어 표준 입력 스트림 (다른 응용 프로그램에서 들어오는 데이터, 쉘 입력을 의미한다이 때문에 기본적으로이 :

process.stdin.on('data', function (chunk) { 
    stdin += chunk; 
}) 

는 말한다 때마다이 새로운 data (사용자가 응용 프로그램이 일부 데이터를 전송 호스팅, 콘솔에 뭔가를 입력)를 읽고 stdin 변수에 저장합니다. 그런 다음, 때 stdin 스트림 (예를 들어, 사용자가 데이터 입력을 완료) 이상이다

.on('end', function() { 
    var lines = stdin.split('\n'); 
    for(var i=0; i<lines.length; i++) { 
    process.stdout.write(lines[i]); 
    } 
}) 

코드가 사용자에 입력 한 내용 다시 출력

+0

감사합니다. –

+0

@ y- 절편 원하는 답변이 있으면 upvote를 사용해보십시오. 답변 중 하나가 귀하의 문제를 가장 잘 해결할 수 있다면 그것을 허용으로 표시하십시오. – Ouroborus

+0

@ Ouroborus, 그는 아직 upvote 수 없다, 그는 1 점 더 필요합니다, 나는이 질문을 upvoted, 당신은 너무 upvote 수 있습니다 :) –

1

모든 인프라가 나타난다.. 남은 것은 실제로 숫자를 제곱하는 것입니다.

process.stdinprocess.stdoutnode streams이며 비동기식이므로 이벤트를 사용하여 이벤트를 알려줍니다. data은 처리 할 준비가 된 데이터가 있고 더 이상 데이터가 없을 때를위한 이벤트입니다. end 이 코드는 단지 process.stdin을 snarfs하고 데이터가 모두 메모리에 저장되면 처리합니다.

end 익명 함수는 아마도 최고의 다음과 같이 구현 될 것이다

:

주제 오프
function() { 
    stdin.split('\n').foreach(function(line){ 
    var value = line.trim()|0; 
    process.stdout.write(value * value); 
    }); 
} 

: 메모리 풋 프린트에서 처리 후 모든 것이 들어 오면 스트림을 처리하기보다는를 수집하여 개선 될 수있다 일단. 이것은 입력 및 입력 버퍼의 크기에 따라 달라집니다.

var buffer = ''; 
var outputSquare = function(line) { 
    var value = line.trim()|0; 
    process.stdout.write(value * value); 
}; 
process.stdin.on('data', function (chunk) { 
    var lines = (buffer + chunk).split('\n'); 
    buffer = lines.pop(); 
    lines.foreach(outputSquare); 
}).on('end', function() { 
    outputSquare(buffer); 
});