华为机试输入输出

671 阅读1分钟

V8输入输出

一、单行输入

牛客网V8引擎是利用了readline()接收输入的每一行,该行字符数不能超过1024个,否则会报错。

var str=readline(); //得到输入字符串
 console.log(); //输出字符串  

//下面这种待测试

//输入
var readline = require('readline');     const rl = readline.createInterface({             input: process.stdin,             output: process.stdout     });     rl.on('line', function(line){         //dosomething   });

//输出 

二:多行输入,
同理,好多同学对V8的多行输入示例不是很明白,其实它基于的readline()并不会像JS语言一样后面的会覆盖前面的语句,在这里readline是可以重载的,也就是说每一次调用readline()就会识别一行输入数据,多行输入其实就是写多个readline()即可。

例:读取两行

var line1=readline(); //得到输入第一行字符串
var line2=readline(); //得到输入第二行字符串

固定行数输入:

任意行数输入:

三:输出,

console.log()

   牛客网输出函数用print()和console.log()都可以,多行输入会根据你的print个数来自动折行;或者利用print(lines + ‘\n’);来折行。

 JavaScript(Node 6.11.4)——稍微复杂点

1.单行输入

const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

//单行输入
rl.on('line',function(data){
  var result= data.split(' '); //获取第一行的内容,存为数组
  console.log(result);
})

多行输入

var readline = require('readline');
    const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout

});

//固定行数的多行输入 
const lines = [];
var num=3; //设定输入行数
var rows=[]; //用于存储每行的输入

rl.on('line',function(data){

    rows.push(data); //将每次输入的行数据存入

    if(num === rows.length){ //输入的行数等于num值
        console.log(rows); //输出结果
    }
});

javascript V12

process.stdin.resume();
process.stdin.setEncoding('ascii');

var input = "";
var input_array = [];

process.stdin.on('data', function (data) {
    input += data; //输入数据
});

process.stdin.on('end', function () {
    input_array = input.split("\n"); //输入数据
    var line = input_array[0].trim();
    var line2 = input_array[1].trim();
    //dosomething
     var a = line;
     var b = line2[0];
     console.log(fn(a, b));
});

牛客官方输入输出。