0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

paizaでのjavascriptの冒頭の一文の調査

0
Last updated at Posted at 2025-11-15

目的

JavaScriptにてpaizaの問題を解いた際、
冒頭の一文に記載されている内容が気になったため、
調査した結果を記載する

process.stdin.resume();
process.stdin.setEncoding('utf8');
var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  console.log(lines)
}

左から順に一文が読み込まれる
公式が実装している決まりみたいなもの

process.stdin.resume()

この行がないと、プログラムは標準入力からのデータを受け取ることができない。

  • process
    Node.jsのprocessモジュールを使うと、nodeに関連する情報を取得したり、
    nodeの動作を制御したりすることができる。

  • stdin
    標準入力(standard input)のこと。コンピュータ上で実行されているプログラムが、
    特に何も指定されていない場合に標準的に利用するデータ入力元。
    システム上では “stdin” の略号で表されることが多い。

  • resume()
    上記設定を動作させる箇所

  • setEncoding("utf8")
    標準入力のエンコーディングをUTF-8に設定。
    これにより、受け取るデータがUTF-8形式の文字列として解釈される。

require("readline")

  • require()
    commonJSの仕様の一つ
    外部ライブラリを参照する方法が、各JSファイルをモジュール化しておいて、
    使うときはrequire()で読み込む

  • readlineモジュールとは
    ユーザーからの入力を簡単に受け取るための、Node.jsの標準モジュール(関連した機能を持った変数や関数を一つのまとまりにした記法)
    Node.jsを使う際、.txtファイルや.csvファイルを一行ずつ読み込みたい場合があり、
    そんな時に使えるのがreadlineモジュール。
    Node.jsで標準に備えられている。

createInterface()メソッド

標準入力と標準出力を使うインターフェースを作成

  • インターフェイス
    概念的に共通した部品と機能の集まり

  • input
    監視する入力ストリーム (必須)。

  • output
    読み込んだデータを書くための出力ストリーム (必須)

  • stdout
    コンピュータ上で実行されているプログラムが、
    特に何も指定されていない場合に標準的に利用するデータ出力先。
    システム上では “stdout” の略号で表されることが多い。

reader.on以降

reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
  console.log(lines)
});
reader.on('line', (line) => {
  lines.push(line);
});

lines配列に、標準入力から渡されたデータが入る

  • on メソッド
    データが入力されたときの動作を(無名関数を渡すことで)指定している。
reader.on('close', () => {
  console.log(lines)
});

受け取ったデータを使って処理

参考文献

https://qiita.com/Molly95554907/items/fddb0a426f9e01d50663
https://qiita.com/ameRese/items/6428482ba94218c625e5
https://information-channel.officialblog.jp/archives/30475181.html
http://www2.nagano.ac.jp/hiraoka/PL/l/js.1.html
https://qiita.com/kaz2ngt/items/dabbfa2d20a328722ca2
https://zenn.dev/ebi_yu/scraps/db4c7d1f3e883a
https://zenn.dev/ojk/articles/js-interface
https://qiita.com/uryyyyyyy/items/b10b012703b5396ded5a
https://e-words.jp/w/%E6%A8%99%E6%BA%96%E5%87%BA%E5%8A%9B.html
https://openpne.sakura.ne.jp/nodejs.org_ja/api/readline.html#readline_rl_close

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?