控制台应用 - 终端输入

时间:2013-05-06 19:56:02

标签: dart

有人可以在Dart(控制台)(最新的r22223)中向我展示终端输入(问题和响应)的示例。我见过的唯一例子似乎不起作用或不完整。

2 个答案:

答案 0 :(得分:4)

这是另一种选择:

import "dart:async";
import "dart:io";

void main() {
  stdout.write('> ');      // stdout.write() rather than print() to avoid newline
  new StringDecoder().bind(stdin).listen((str) { // Listen to a Stream<String>
      print('"${str.trim()}"');                // Quote and parrot back the input
      stdout.write('> ');                      // Prompt and keep listening
  }, onDone: () => print('\nBye!'));           // Stream is done, say bye
}

这似乎在Linux和Windows上运行良好。无论您在提示符处输入什么,它都会向您报出。您可以通过在Linux和其他类UNIX系统上输入EOFcontrol-Dcontrol-Z,然后在Windows上输入enter来退出。

答案 1 :(得分:2)

import "dart:async";
import "dart:io";

void main() {
  print("Do you want to say something?");
  Stream<String> input = stdin.transform(new StringDecoder());
  StreamSubscription sub;
  sub = input.listen((user_input) {
    print("Really? \"${user_input.trim()}\"? That's all you have to say?");
    sub.cancel();
  });
}

您找到了哪个示例,以及它究竟是错误的?