Недавно я начал изучать Dart, однако у меня возникла очень специфическая проблема с командой readLineSync.
import 'dart:io';
void main() {
int mxm;
String a;
print('Enter Maximum Marks:');
a = stdin.readLineSync()!;
print(a);
print('Enter Obtained Marks:');
mxm = int.parse(a);
print(mxm);
print(mxm + 500);
}
Он всегда отображает это сообщение, независимо от ввода.
Неизвестный тип ответа на оценку: ноль
Никто из моих знакомых лично понятия не имеет, как решить эту проблему. Я предпринял те же шаги для установки Dart, что и они, и они не видят в этом никаких проблем. Я пробовал переустановить VS Code и Dart и даже создать новый файл, но результат всегда один и тот же. Есть ли что-то, чего мне не хватает? Это проблема установки или что-то не так с кодом?
Мне не удалось воспроизвести вашу ошибку, используя dart 3.3.4 и vscode 1.88.1. Какие у вас настройки: «Настройки» > «Dart» > «Запуск и отладка» > «Dart: консоль Cli»?
@DanR Я буду иметь это в виду, спасибо. Я подумал, что картинка будет полезнее, поскольку код должен быть функциональным. Предпочтением для консоли Dart: Cli по умолчанию является debugConsole.
Консоль отладки vscode по умолчанию не принимает пользовательский ввод. Для отладки программы, требующей ввода данных пользователем, вам необходимо установить для параметра «Настройки» > «Dart» > «Запуск и отладка» > «Dart: Cli Console» значение Terminal (или альтернативно External Terminal).
Спасибо тебе за это. Я попробовал перейти на «Терминал» и «Внешний терминал», и программа работает нормально. Кроме того, возможно ли, чтобы выходные данные отображались в окне вывода?
Добро пожаловать в stackoverflow. Просто хотел сообщить вам, что гораздо проще ответить на ваш вопрос, если вы опубликуете код и сообщение об ошибке вместо изображения. Например, теперь мне пришлось сначала набрать ваш код, чтобы попытаться воспроизвести ошибку. См. также stackoverflow.com/help/how-to-ask.