You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart中stdin.readLineSync()获取输入返回null的问题求助

解决Flutter中stdin.readLineSync()返回null的问题

你的代码是标准Dart控制台程序的写法,但在Flutter环境中运行时,stdin(标准输入流)无法正常工作——Flutter是用于构建UI应用的框架,不管是在模拟器还是真实设备上,都没有传统控制台的输入交互环境,所以stdin.readLineSync()会直接返回null。

两种解决方案:

  • 仅练习Dart基础语法:用Dart SDK单独运行
    把代码保存为独立的.dart文件,然后在终端执行:

    dart run 你的文件名.dart
    

    这样就能在终端正常输入并获取值。

  • 在Flutter应用中实现用户输入:使用UI组件
    如果你需要在Flutter应用里让用户输入内容,应该用Flutter提供的TextField组件,示例代码如下:

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(const MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(title: const Text('用户输入示例')),
            body: const InputDemo(),
          ),
        );
      }
    }
    
    class InputDemo extends StatefulWidget {
      const InputDemo({super.key});
    
      @override
      State<InputDemo> createState() => _InputDemoState();
    }
    
    class _InputDemoState extends State<InputDemo> {
      final TextEditingController _controller = TextEditingController();
      String _inputContent = '';
    
      @override
      void dispose() {
        _controller.dispose();
        super.dispose();
      }
    
      @override
      Widget build(BuildContext context) {
        return Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              TextField(
                controller: _controller,
                decoration: const InputDecoration(hintText: '请输入你的名字'),
              ),
              const SizedBox(height: 16),
              ElevatedButton(
                onPressed: () {
                  setState(() {
                    _inputContent = _controller.text;
                  });
                },
                child: const Text('确认输入'),
              ),
              const SizedBox(height: 16),
              Text('你输入的内容:$_inputContent'),
            ],
          ),
        );
      }
    }
    

内容的提问来源于stack exchange,提问作者jurasso97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:35:29