Есть ли способ прочитать стандартный ввод с помощью JavaScript?

Я видел это для многих других языков, но не для JavaScript.

Я пытаюсь решить такие проблемы, как: это (codechef.com), и, конечно же, программы должны уметь читать стандартные языки, как C++ и другие языки.

РЕДАКТИРОВАТЬ: Спасибо за ответы. Основная причина, по которой мне нужна эта функциональность, заключается в том, что я могу отвечать на вопросы о CodeChef; Codechef отправляет несколько входных данных файлам/программам, которые являются ответами (и, конечно, программы должны отвечать требуемым образом, чтобы ответ был правильным).


person JohnAllen    schedule 22.03.2011    source источник


Ответы (5)


Это зависит от среды, в которой выполняется ваш JavaScript.

В браузере нет стандартного ввода (браузер не консоль). Ввод обычно поступает из какого-либо элемента текстового поля в форме на странице.

Если вы используете что-то вроде Rhino, вы можете импортировать стандартный Java I /O и читать таким образом со стандартного ввода (см. второй пример больше нет в вики).

person Cameron    schedule 22.03.2011
comment
Ввод может поступать из любого места в DOM, если среда является браузером. Вероятно, он имел в виду среду NodeJS. - person Bhargav Nanekalva; 05.02.2019

Если вы используете узел в качестве интерпретатора в терминале, вы можете использовать это:

---- name.js ----
var readline = require('readline');

var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout

});

rl.question(">>What's your name?  ", function(answer) {
   console.log("Hello " + answer);
   rl.close();
});

----- terminal ----
node name.js
person Kenn Costales    schedule 28.01.2016

Его нет в стандартной библиотеке ECMAScript (стандартизированная версия JavaScript). Однако некоторые реализации JavaScript включают его. Например, CommonJS, который используется несколькими средами JavaScript вне браузера, имеет систему .stdin свойство. Rhino может использовать стандартные классы ввода Java.

Если вы просто пытаетесь попрактиковаться в программировании, вы можете использовать текстовое поле вместо стандартный ввод.

person Matthew Flaschen    schedule 22.03.2011

В некоторых средах, таких как, например, на странице интервью, они предоставляют вам функцию, в которой все входные данные поступают в виде аргумента в виде строки.

Все вводные сразу.

Затем вам нужно проанализировать этот ввод, чтобы получить различные токены из этой строки.

После этого вы должны быть готовы писать код дальше.

person TwiToiT    schedule 26.01.2014

Используйте только readline()

var a = readline();

значение, которое вы вводите, будет сохранено в переменной a.

readline(): считывает одну строку ввода со стандартного ввода и возвращает ее вызывающей стороне. Вы можете использовать это для создания интерактивных программ-оболочек на JavaScript.

person Dinesh kumar Mohanty    schedule 30.12.2018
comment
Если вы хотите использовать его в Nodejs, вам сначала нужно его потребовать; в противном случае возникает исключение, сообщающее, что readline не определено. Но этот шаблон работает в D8. - person mrzrm; 06.03.2020