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

Golang中的Scanln不接受空格

廖绍辉
2023-03-14
问题内容

我如何使用Scanln接受空格作为输入?


问题答案:

您不能将fmt包的Scanln()功能和类似功能用于您要执行的操作,因为引用了fmt包doc:

动词处理的输入是隐式用空格分隔的:除%c外,每个动词的实现都从 丢弃 其余输入中的 前导空格 开始,并且%s动词(和%v读入字符串)
停止在第一个空格第二个空格处占用输入 换行符。

fmt软件包有意过滤掉空格,这就是它的实现方式。

而是使用bufio.Scanner读取可能包含您不想过滤掉的空白的行。要从标准输入中读取/扫描,请bufio.Scanner使用bufio.NewScanner()函数通过新建一个os.Stdin

例:

scanner := bufio.NewScanner(os.Stdin)
if scanner.Scan() {
    line := scanner.Text()
    fmt.Printf("Input was: %q\n", line)
}

现在,如果您输入3个空格并按Enter,输出将是:

Input was: "   "

一个更完整的示例,该示例将不断读取行,直到您终止应用程序或输入"quit",并且还会检查是否存在错误:

scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
    line := scanner.Text()
    fmt.Printf("Input was: %q\n", line)
    if line == "quit" {
        fmt.Println("Quitting...")
        break
    }
}
if err := scanner.Err(); err != nil {
    fmt.Println("Error encountered:", err)
}


 类似资料:
  • 问题内容: 在Java 8中,这有效: 但这不是: Maps允许使用null键,并且List.class.getSuperclass()返回null。但是Collectors.groupingBy在Collectors.java的第907行发出了NPE: 如果我创建自己的收集器,则此行会更改为: 我的问题是: 1)Collectors.groupingBy的Javadoc并未表示不应映射空键。是否

  • 我需要一个scanf()调用来接受空格(没有制表符或换行符,只有空格符号)。 我从这个问题的答案中得到了这个格式说明符: 如何使用扫描允许空间输入 虽然它可以很好地接受第一个输入序列,但它在第一个空白字符所在的位置终止,并使用空字符。发生什么事?我是否使用了错误的格式? 我应该说,我在这里使用scanf()是因为安全不是一个问题;我是唯一一个使用这个特殊程序的人,输入的格式是严格的。

  • 我无法弄清楚为什么我的日志没有打印到 Logcat,直到我添加了一个标签。我在日志记录方面很懒惰,过去从未添加过标签。自从我做Android工作以来已经有一段时间了,所以我不确定它已经有多久了。为什么我不能再这样做了,有没有办法让它再次工作?我可以很容易地制作自己的方法来打印日志,但我正在寻找是否可以更改设置以使其像以前一样工作。

  • 问题内容: 我正在尝试Go-并希望创建一个可以远程登录,发送命令和接收响应的TCP服务器。 上面的代码片段每次都会关闭连接,将我踢出终端会话。但是我真正想要的是能够保持连接打开以进行更多的I / O操作。如果我只是删除,则服务器似乎挂在某处,因为它不再获得任何响应。 我解决此问题的方法是让我的handleRequest方法无休止地循环,以便它在收到消息之前永远不会退出。这是否合适- 还是有更好的实

  • 我刚从围棋开始。下面是我试图通过以下代码实现的内容。 Main函数为searchAndLog()创建5个线程。此函数接受一个通道,通过该通道它将接收到一个目录的路径,它将搜索一个名为“.DS_Store”的文件,然后对其执行操作。 然后,main函数为“file path.Walk()”创建另一个线程。该线程将遍历传递给它的目录,对于它遇到的每个目录(在walkFunc()中),它将执行selec

  • 我正在使用tomcat v8,并试图通过RequestBody向我的REST API发送一个对象。这个REST API基本上是RequestMethod。这个API内部的逻辑是删除RequestBody中传递的对象。 这对我不起作用。我后来不得不将我的方法转换为POST,但我仍然想知道DELETE是否不接受RequestBody? 这是来自Spring框架或REST原则的限制,还是与我的Tomca