这阵子在看牛客网上看一些编程题,发现有一部分的编程题是需要读取用户输入,并输出结果的。在我开发前端以来,使用JS读取用户输入的内容好像从没用过。所以一开始的我一头雾水。网上有介绍说Node的方法readline可以逐行读取用户输入信息。于是便在此对readline方法进行总结
readline使用
// 1.引入readline模块
const readline = require('readline');
// 2.创建 Interface 类的实例
const rl = readline.createInterface({
input: process.stdin, // 输入的流
output: process.stdout // 输出的流
});
// 监听line事件,读取用户输入的一行内容(用户敲回车键之前的所有内容)
rl.on('line', function(input){
// input便是用户输入的一行内容
console.log(`接收到:${input}`);
})
用户输入的内容通过上述代码便可以获取到了。而在编程题中还需要得到输出,通常情况下console.log()在控制台打印的结果也就是输出的结果。也就是说在上面的代码中console.log()内放置你实现的函数代码。将用户输入作为参数传递就可以了。
在读取用户输入内容的过程中,程序不会停止,也就是在命令行里一直监听用户的输入。想要关闭监听用户的输入,可以使用rl的close方法:
rl.close()
该方法是Javascript在Node引擎中读取用户输入的
还有V8引擎,其代码如下:
while(line=readline()){
var lines = line.split(' ');
var a = parseInt(lines[0]);
var b = parseInt(lines[1]);
print(a+b);
}
其他更多的编程语言读取用户输入可以参考如下:
Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in); while (in.hasNextInt()) { //注意while处理多个case int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);
}
}
}
Python:
import sys
try:
while True:
line = sys.stdin.readline().strip()
if line == '':
break
lines = line.split()
print int(lines[0]) + int(lines[1])
except:
pass
Python3:
import sys
for line in sys.stdin:
a = line.split()
print(int(a[0]) + int(a[1]))
Go:
package main
import (
"fmt"
)
func main() {
a:=0
b:=0
for {
n, _ := fmt.Scan(&a,&b)
if n == 0 {
break
} else {
fmt.Printf("%d\n",a+b)
}
}
}