https://atcoder.jp/contests/abs/tasks/practice_1
のJavaScriptのプログラムをVisual Studio Codeで作成したいと思っています。
最初にエラーが出たのですが、
https://xn--u9j207iixgbigp2p.xn--tckwe/archives/9515
を参考にnode.jsをインストールしました。
プログラムは下記なのですが、
JavaScript
1// inputに入力データ全体が入る2function Main(input) {3 // 1行目がinput[0], 2行目がinput[1], …に入る4 input = input.split("\n");5 tmp = input[1].split(" ");6 //文字列から10進数に変換するときはparseIntを使います7 var a = parseInt(input[0], 10);8 var b = parseInt(tmp[0], 10);9 var c = parseInt(tmp[1], 10);10 var s = input[2];11 //出力12 console.log('%d %s',a+b+c,s);13}14//*この行以降は編集しないでください(標準入出力から一度に読み込み、Mainを呼び出します)15Main(require("fs").readFileSync("/dev/stdin", "utf8"));
C:\Program Files\nodejs\node.exe .\..\..\..\javascript\jsprogram Uncaught Error Error: ENOENT: no such file or directory, open 'C:\dev\stdin' at readFileSync (fs:453:20) at <anonymous> (c:\javascript\jsprogram:15:20) at Module._compile (internal/modules/cjs/loader:1376:14) at Module._extensions..js (internal/modules/cjs/loader:1435:10) at Module.load (internal/modules/cjs/loader:1207:32) at Module._load (internal/modules/cjs/loader:1023:12) at executeUserEntryPoint (internal/modules/run_main:135:12) at <anonymous> (internal/main/run_main_module:28:49)
というエラーがでました。
C:\dev\stdin\に「fs」という名前で下記内容のテキストファイルを作ったところ、
1
2 3
test
C:\Program Files\nodejs\node.exe .\..\..\..\javascript\jsprogram Uncaught Error Error: EISDIR: illegal operation on a directory, read at readFileSync (fs:453:20) at <anonymous> (c:\javascript\jsprogram:15:20) at Module._compile (internal/modules/cjs/loader:1376:14) at Module._extensions..js (internal/modules/cjs/loader:1435:10) at Module.load (internal/modules/cjs/loader:1207:32) at Module._load (internal/modules/cjs/loader:1023:12) at executeUserEntryPoint (internal/modules/run_main:135:12) at <anonymous> (internal/main/run_main_module:28:49)
というエラーが表示されました。
しかし、
https://qiita.com/saba_can00/items/02ff28a16a0d312a5259
によると「/dev/stdinはUNIX系のOSでしか利用できないので、Windowsでは利用できない」
とあり、同ページに書いてあったプログラムに変えましたが、入力画面がでませんでした。
どうしたら良いでしょうか。よろしくお願いします。
JavaScript
1process.stdin.setEncoding("utf8");2 3var lines = []; 4var reader = require("readline").createInterface({5 input: process.stdin,6});7 8reader.on("line", (line) => {9 //改行ごとに"line"イベントが発火される10 lines.push(line); //ここで、lines配列に、標準入力から渡されたデータを入れる11});12reader.on("close", () => {13 //標準入力のストリームが終了すると呼ばれる14 console.log(lines); 15});

0 コメント