如何同步从stdin读取单个字符?

phi*_*012 7 node.js

换句话说,node.js等价于C的getchar函数是什么?(等待输入,当它得到它时,它返回字母的字符代码,后续调用从stdin获取更多字符)

我尝试搜索谷歌,但没有一个答案是同步的.

Ant*_*iad 2

这是基于fs.readSync的 getChar 的简单实现:

fs.readSync(fd, 缓冲区, 偏移量, 长度)

与其他答案不同,这将是同步的,仅从 stdin读取一个字符并且是阻塞的,就像 C 的一样getchar

let fs = require('fs')

function getChar() {
  let buffer = Buffer.alloc(1)
  fs.readSync(0, buffer, 0, 1)
  return buffer.toString('utf8')
}

console.log(getChar())
console.log(getChar())
console.log(getChar())
Run Code Online (Sandbox Code Playgroud)