Как читать консольный ввод /stdin в Dart? Как читать консольный ввод из stdin в Dart? Есть ли scanf в Dart? Ответ 1 Метод readLineSync() в stdin позволяет захватывать строку из консоли: import 'dart:io'; main() { print('1 + 1 = ...'); var line = stdin.readLineSync(encoding: Encoding.getByName('utf-8')); print(line.trim() == '2' ? 'Yup!' : 'Nope :('); } Ответ 2 Следующее должно быть самым современным кодом дротика для чтения ввода из стандартного ввода. import 'dart:async'; import 'dart:io'; import 'dart:convert'; void main() { readLine().listen(processLine); } Stream<String> readLine() => stdin .transform(utf8.decoder) .transform(const LineSplitter()); void processLine(String line) { print(line); } Ответ 3 С классами дротиков M3, такими как StringInputStream, заменяются Stream, попробуйте следующее: import 'dart:io'; import 'dart:async'; void main() { print("Please, enter a line \n"); Stream cmdLine = stdin .transform(new StringDecoder()) .transform(new LineTransformer()); StreamSubscription cmdSubscription = cmdLine.listen( (line) => print('Entered line: $line '), onDone: () => print(' finished'), onError: (e) => /* Error on input. */); } Ответ 4 import 'dart:io'; void main(){ stdout.write("Enter your name : "); var name = stdin.readLineSync(); stdout.write(name); } Выход Enter your name : Jay Jay По умолчанию readLineSync() принимает ввод как строку. Но если вы хотите целочисленный ввод, то вы должны использовать parse() или tryparse().
Ответ 1 Метод readLineSync() в stdin позволяет захватывать строку из консоли: import 'dart:io'; main() { print('1 + 1 = ...'); var line = stdin.readLineSync(encoding: Encoding.getByName('utf-8')); print(line.trim() == '2' ? 'Yup!' : 'Nope :('); }
Ответ 2 Следующее должно быть самым современным кодом дротика для чтения ввода из стандартного ввода. import 'dart:async'; import 'dart:io'; import 'dart:convert'; void main() { readLine().listen(processLine); } Stream<String> readLine() => stdin .transform(utf8.decoder) .transform(const LineSplitter()); void processLine(String line) { print(line); }
Ответ 3 С классами дротиков M3, такими как StringInputStream, заменяются Stream, попробуйте следующее: import 'dart:io'; import 'dart:async'; void main() { print("Please, enter a line \n"); Stream cmdLine = stdin .transform(new StringDecoder()) .transform(new LineTransformer()); StreamSubscription cmdSubscription = cmdLine.listen( (line) => print('Entered line: $line '), onDone: () => print(' finished'), onError: (e) => /* Error on input. */); }
Ответ 4 import 'dart:io'; void main(){ stdout.write("Enter your name : "); var name = stdin.readLineSync(); stdout.write(name); } Выход Enter your name : Jay Jay По умолчанию readLineSync() принимает ввод как строку. Но если вы хотите целочисленный ввод, то вы должны использовать parse() или tryparse().