是否可以从 io::stdin() 读取字符而不逐行缓存输入?

2024-04-27

这个问题指的是稳定的Rust版本1.2.0


您可以通过使用单个字节数组并继续读取直到Result成为一个Err。然而,这有一个问题,因为如果您不以 ASCII 字符阅读,就会出现这种情况。如果您要遇到这个问题,最好只分配一个String,并使用chars迭代器,因为它处理这个问题。

示例代码:

use std::io::{stdin, Read};

fn main() {
    loop {
        let mut character = [0];
        while let Ok(_) = stdin().read(&mut character) {
            println!("CHAR {:?}", character[0] as char);
        }
    }
}

示例输出:

Hello World
CHAR Some('H')
CHAR Some('e')
CHAR Some('l')
CHAR Some('l')
CHAR Some('o')
CHAR Some(' ')
CHAR Some('W')
CHAR Some('o')
CHAR Some('r')
CHAR Some('l')
CHAR Some('d')
CHAR Some('\n')
你好世界
CHAR Some('\u{e4}')
CHAR Some('\u{bd}')
CHAR Some('\u{a0}')
CHAR Some('\u{e5}')
CHAR Some('\u{a5}')
CHAR Some('\u{bd}')
CHAR Some('\u{e4}')
CHAR Some('\u{b8}')
CHAR Some('\u{96}')
CHAR Some('\u{e7}')
CHAR Some('\u{95}')
CHAR Some('\u{8c}')
CHAR Some('\n')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以从 io::stdin() 读取字符而不逐行缓存输入? 的相关文章

随机推荐

  • TYPO3 9.5 URL 路由与 URL 段不起作用

    我对 Typo3 不太有经验 所以我希望我的问题 问题是一个非常简单的问题 我在 Ubuntu 上使用 Typo3 9 5 0 LTS instanz 以及 Apache 和 MySQL 问题是 URLS 路由 https typo3 or
  • 依靠 IEnumerable

    我正在使用 Rob Conery 的 Massive ORM 有没有一种优雅的方法来对返回的记录集进行计数 dynamic viewModelExpando result ViewData Model var queryFromMassiv
  • 如何确保ES3程序能够在ES5引擎中运行?

    因此 ECMAScript 5 引入了与 ECMAScript 3 的一些不兼容性 Example Many https developer mozilla org en JavaScript Strict mode articles ht
  • 如何检测谷歌地图折线叠加层上的点击事件?

    在我看来 我应该能够执行以下操作来检测谷歌地图上的一行上的点击事件 var line new GPolyline map addOverlay line GEvent addListener line click function latl
  • 字符串替换不起作用[重复]

    这个问题在这里已经有答案了 public static string ChangeUriToHttps HttpRequest request string uri request Url AbsoluteUri if IsRequestS
  • 如何在 Rails 3.2.8 中使用 Jquery?

    我读过的所有教程都告诉我使用 public javascripts 文件夹 但rails 3 2 8中没有这个文件夹 我的 jquery 代码应该放在哪里 Rails 3 2 8 中不包含 Jquery 吗 默认的 Rails 应用程序 g
  • 如何使用具有长联系人列表的 Apple 联系人框架更快地获取 iOS 联系人?

    我在用联系方式获取我的 iOS 设备中的电话簿联系人 当我的手机中有少量联系人 例如 50 个 时 可以轻松获取联系人 但是 当我有很多联系人 比如 500 700 时 它会挂起 等待很长时间才能将这些联系人从 iOS 电话簿获取到我的应用
  • elf .rel.text 部分中 R_386_32/R_386_PC32 的含义

    为了理解重定位的概念 我编写了一个简单的 chk c 程序 如下所示 1 include
  • 如何避免 在选择文件后删除值?

    我正在开发一个网络上传器 但是 我发现了一些东西 我不知道这是否是一个问题 这是我发现的 当我选择文件时
  • 在将页面发送到客户端之前修改该页面的 HTML

    我需要在将 ASP NET 发送到客户端之前捕获它的 HTML 以便对其进行最后一刻的字符串操作 然后将修改后的版本发送到客户端 e g 页面已加载 每个控件都已正确呈现 页面的完整 html 已准备好传输回客户端 在 ASP NET 中有
  • 在 NTVDM 下运行的 16 位应用程序

    我正在执行一些旧的 16 位应用程序 我们的内部人员不应再使用这些应用程序 它们是 1985 年的 DOS 应用程序 因此捕获它们很容易 捕获在 NTVDM exe 下启动的任何进程 现在的问题是找出哪个程序 NTVDM 实际上在幕后运行
  • 如何作为 API 向 Django 检索/提供 CSRF 令牌

    我正在开发一个使用 Django REST Framework 作为后端的项目 假设在api somecompany com但有一个 React js 前端 位于www somecompany com 不由发出 AJAX 请求的 Djang
  • 按“计数(列不为空)”排序

    我正在寻找一种方法 通过值不为空的列的计数来对 MySQL 结果进行排序 所以 id 1 1 0 1 1 4 id 0 1 1 1 0 3 id 0 0 0 1 1 2 id 1 0 0 0 0 1 在上面的例子中 我忽略了 ID 列 但实
  • 如何在 PySpark 数据框中创建动态组?

    虽然问题是基于连续行的两个或多个列的值创建多个组 但我只是通过这种方式简化问题 假设有这样的 pyspark 数据框 gt gt gt df sqlContext createDataFrame Row SN 1 age 45 gender
  • 如何将受密码保护的 Excel 文件读入 r 中?

    如何将受密码保护的 Excel 文件读入 r 中 我尝试过 excel link 但它不适用于 R 版本 3 2 3 我的版本 我也尝试过 RDCOMClient 但它也不适用于 R 版本 3 2 3 我刚用过xl read file来自e
  • 如何循环访问某些 Outlook 子文件夹的所有 MailItem

    我正在开发 Outlook 2007 加载项 我找到了一些代码来循环所有文件夹 但我无法弄清楚如何循环inside任何给定的文件夹来检查 MailItem 对象 最终 我想将电子邮件保存在其他位置并修改 Subject 属性 这是我到目前为
  • Swift 中不区分大小写的字典

    Given a Dictionary whose Key属于类型String 有没有办法以不区分大小写的方式访问该值 例如 let dict name John location Chicago 有办法打电话吗dict NAME dict
  • AWS RDS 如何设置 MySQL 数据库

    我有一个 Java 应用程序成功运行在Amazon Web Services Elastic Beanstalk 我正在尝试设置MySQL 我已经创建了一个数据库实例 如您所见 问题一 如何将我的 Java 应用程序连接到数据库 我有以下代
  • 以 null 为键的 HashMap

    How HashMap内部区分null and 0作为关键 按照这个post https stackoverflow com questions 17268212 hashcode for null key in hashmap的哈希码nu
  • 是否可以从 io::stdin() 读取字符而不逐行缓存输入?

    这个问题指的是稳定的Rust版本1 2 0 您可以通过使用单个字节数组并继续读取直到Result成为一个Err 然而 这有一个问题 因为如果您不以 ASCII 字符阅读 就会出现这种情况 如果您要遇到这个问题 最好只分配一个String 并