当前位置: 首页 > 面试题库 >

从标准输入读取行直到特定字符

沈龙光
2023-03-14
问题内容

我正在学习Go。

我的程序应该从stdin中读取数据,直到我输入一个单句点的行。

package main

import (

  "os"
  "fmt"
  "bufio"

)

func main(){

  in    := bufio.NewReader(os.Stdin)
  input := ""

  for input != "." {
    input, err := in.ReadString('\n')
    if err != nil {
      panic(err)
    }
  }
}

我应该如何修改for循环,以在输入单个点时停止程序?

我试图用for语句实现while循环,我的方法是否有问题,条件是否错误,还是ReadString弄乱了我的数据?


问题答案:

… ReadString弄乱了我的数据吗?

不,不是。它正在阅读下一个'\n'。这意味着一行上只有一个点的行将具有数据".\n"".\r\n"取决于操作系统。

要删除行尾,我会这样做 input = strings.TrimRight(input, "\r\n")



 类似资料:
  • 问题内容: 当输入零作为输入时,我需要停止询问整数输入,并立即开始求和。当我键入零时,我的程序不会停止。我需要它停止并开始汇总它收集的所有输入。 这是我所拥有的: ///////////////有效的最终代码。谢谢!公共类Inttosum { 问题答案: 您正在使用一种称为循环条件的东西,但是在循环中更新了变量。您可以使用循环。更改 像 使用 我也建议先打电话再打电话。而且,由于您不使用(只是),

  • 本文向大家介绍OCaml 从标准输入读取并打印到标准输出,包括了OCaml 从标准输入读取并打印到标准输出的使用技巧和注意事项,需要的朋友参考一下 示例 我们准备一个包含reverser.ml以下内容的文件: 然后,我们使用以下命令编译程序: 我们通过将数据传递到新的可执行文件进行测试: 该reserver.ml程序以命令式风格编写。虽然命令式样式很好,但是将其与功能翻译进行比较很有趣: 由于引入

  • 问题内容: 从标准输入逐行读取的Scala配方是什么?类似于等效的Java代码: 问题答案: 最直接的前瞻性的方式将只使用它的一部分。但是,这很丑陋,因为您需要检查最终的空值: 这太冗长了,您宁可使用它。 我认为将使用更漂亮的方法:

  • 问题内容: 我正在Node.js中编写一个程序,该程序(在某些情况下)希望充当一个简单的过滤器:读取从stdin(直到文件结尾)的所有内容,进行一些处理,然后将结果写入stdout。 您如何“从stdin中读取所有内容”部分?到目前为止,我找到的最接近的解决方案似乎可以从控制台一次运行一行,或者仅在stdin是文件而不是管道时才能工作。 问题答案: 我为此编写的样板与上面评论中描述的解决方案非常相

  • 问题内容: 如何使用Go中的函数从标准输入获取整数输入? 如果使用无法完成此操作,那么读取单个整数的最佳方法是什么? 问题答案: http://golang.org/pkg/fmt/#Scanf Go中包含的所有库都有充分的文档记录。 话虽如此,我相信 绝招

  • 我最近想出了如何在汇编中写入 stdout,但现在无法从 stdin 中读取,并将我读取的内容输出回 stdout。这是我到目前为止的代码: 我很确定我看错了。我很确定和的行为没有达到预期(如果我将 替换为 次),这是导致我的问题的原因(当我输入输入并点击return时,它什么也不显示)。 我已经摸索了一段时间了,希望能得到任何帮助。(我这么做只是为了了解这不是家庭作业)。 我的问题本质上是我做错