Dart中的简单命令行应用程序I/O
有没有办法从用户那里获取单字符(整数)键盘输入,并将其存储到Dart命令行应用程序中的变量中?我试过这样的方法:Dart中的简单命令行应用程序I/O,dart,keyboard-events,dart-io,Dart,Keyboard Events,Dart Io,有没有办法从用户那里获取单字符(整数)键盘输入,并将其存储到Dart命令行应用程序中的变量中?我试过这样的方法: Stream cmdLine=stdin .transform(新的StringDecoder()) .transform(新的LineTransformer()); StreamSubscription cmdSubscription=cmdLine.listen( (行)=>(选项=行); cmdSubscription.cancel();); 试图将键盘输入存储到变量“cho
Stream cmdLine=stdin
.transform(新的StringDecoder())
.transform(新的LineTransformer());
StreamSubscription cmdSubscription=cmdLine.listen(
(行)=>(选项=行);
cmdSubscription.cancel(););
试图将键盘输入存储到变量“choice”和此代码的许多细微变化中,但无法使其工作。当前,一次只能读取整行数据,即按下enter键后 这是星星 更新: 函数的作用是:等待用户输入一行内容,并将其作为字符串返回
导入'dart:async';
导入“dart:io”;
main(){
打印('1+1=…');
readLine()。然后((行){
打印(line.trim()='2'?'Yup!':'Nope:(');
});
}
未来读线(){
var completer=new completer();
var输入=标准输入
.transform(新的StringDecoder())
.transform(新的LineTransformer());
var-subs;
subs=输入。侦听((行){
完成器。完成(行);
subs.cancel();
});
返回completer.future;
}
这对我来说没问题,只要让用户键入1或2,然后输入即可;我添加了一个这样做的示例-如果它坏了,请告诉我一声。Hhmm试图使用该函数,但代码似乎跳过了readLine调用readLine()。然后((s)在该调用中,我试图将全局变量choice设置为s,因此我有:readLine()。然后((s){choice=s;});而(choice==0){}print('您输入了$choice');尝试使用while循环强制等待输入,但在输入任何内容并按enter键后,它始终不会到达print语句。如果删除while循环,它只会在不等待输入的情况下点击打印。我的实现是否不正确?忘了提及我已初始化:“var choice=0;”前面在不同的地方测试print语句,我看到readLine调用中的“choice=s;”部分代码从未到达,我认为subs=input.listen((line){completer.complete(line);subs.cancel();});也从未运行过