- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个初始循环,它不断询问用户问题,直到用户键入 q 退出。
func main() {
scanner := bufio.NewScanner(os.Stdin)
quit := false
var city string
var anything string
for quit == false {
fmt.Println("Enter a city name")
for scanner.Scan(){
city= scanner.Text()
fmt.Printf("q to quit (Anything else to continue): ")
anything = scanner.Text()
}
if anything == "q" {
fmt.Println(city)
quit = true
}
}
}
我正在努力弄清楚的是如何退出扫描仪的嵌套 for 循环并继续初始 for 循环,直到用户输入 q。现在,它不会退出第二个循环,所以它总是提示“q to quit ...”,当我休息时,它会退出两个循环。
知道我应该如何解决这个问题吗?
最佳答案
很难准确地说出您想要什么,因为您没有向我们提供样本输入和输出。也许,根据您的代码,是这样的:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var cities []string
scanner := bufio.NewScanner(os.Stdin)
for {
fmt.Println("Enter a city name")
if !scanner.Scan() {
break
}
city := scanner.Text()
if len(city) > 0 {
cities = append(cities, city)
}
fmt.Printf("q to quit (Anything else to continue): ")
if !scanner.Scan() || scanner.Text() == "q" {
break
}
}
if err := scanner.Err(); err != nil {
fmt.Fprintln(os.Stderr, err)
}
fmt.Printf("%q\n", cities)
}
输出:
Enter a city name
Los Angeles
q to quit (Anything else to continue):
Enter a city name
London
q to quit (Anything else to continue):
Enter a city name
Delhi
q to quit (Anything else to continue): q
["Los Angeles" "London" "Delhi"]
关于Golang 在另一个 for 循环中退出 bufio for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49640461/
代码如下所示: package main import ( "bufio" "fmt" "io" "log" "os" ) func main() {
我在互联网上看到过几条宣传语,它们松散地谈论了为什么应该使用 bufio.Scanner 而不是 bufio.Reader。 我不知道我的测试用例是否相关,但我决定在从文本文件中读取 1,000,00
我想通过尝试再读取一个字节(并捕获 EOF)来确认没有更多的字节可以从缓冲读取器(既不是来自内部缓冲区,也不是来自底层文件对象)中读取。 使用 bufio.Read 或 bufio.ReadByte
我正在使用 bufio.Scanner,我不确定是否应该给它一个由 bufio.Reader 包装的阅读器。 即,f 是一个 os.File,我应该: scanner := bufio.NewScan
我有 2 个进程通过 TCP 套接字进行通信。 A 方向 B 方发送一个字符串,该字符串有时使用标准加密/密码包进行加密。结果字符串可能包含一个换行符,但 B 端的 bufio 扫描器将其解释为请求的
我有一个小问题。我正在尝试从文件中读取一个程序,然后在另一个文件中写入完全相同的内容。我已经使它工作了,但是我发现如果我使用goroutines对其进行了一点修改,它应该会运行得更快。我将读写分为不同
我有下一个代码: resp, err := http.Get("https://www.google.com") if err != nil{ panic(err) } r := bufio.
我试图了解 bufio ReadBytes 在接收大数据包时的行为。我在 MTU=9001 的 unix 机器的 eth0 上运行一个简单的 Golang TCP 服务器。客户端是一台单独的机器(没有
我对 Golang 还很陌生;以前使用过 Python。 我很难在对象中应用 bufio。 type fout struct { filename string fo File
我使用 golang 接收 mtr 信息,并在一些工作后将其发送到 os.stdout但是输出是无序的。下面的代码 scanner := bufio.NewScanner(os.Stdin)
以免我提供an XY problem ,我的目标是在多个 goroutine 之间共享一个内存映射文件 as recommended .每个 goroutine 都需要逐行遍历文件,所以我希望先将完整
我正在尝试调整 bufio.ScanLines,以便它知道转义的新行 \\n。 输入: line1 \ continues on line2 预期输出: ["line1 continues on li
我需要模拟 bufio Reader用于检测。特别是 ReadString API。 func NewReader(rd io.Reader) *Reader func (b *Reader) Rea
多个goroutines可以同时调用bufio Read函数吗?我阅读了 bufio 的源代码,看起来它没有适当的方法来保护缓冲区只能由一个 goroutine 读取。 最佳答案 不,从缓冲区读取不是
我正在使用 bufio 为文本文件中的每一行执行一个 for 循环。我不知道如何计算行数。 scanner := bufio.NewScanner(bufio.NewReader(file)) 上面是
我有这个代码: var scanner = bufio.NewScanner(os.Stdin) func readInt() int { scanner.Scan() ans, _
我用它来收集输入并显示输入,但是当我这样做时,“something”文本将显示在新行中,但我希望文本显示在同一行中,有什么想法吗? func main() { fmt.Println("Exa
如何使用 bufio.ScanWords 和 bufio.ScanLines 函数来计算字数和行数? 我试过: fmt.Println(bufio.ScanWords([]byte("Good day
我有此监听器功能,可在网络上监听来自其对等方的消息。 它必须在一定时间内可以正常工作,但是当它同时接收到两条消息时,出现以下错误: “💬消息解码错误-缓冲区中有多余数据” 可以将其修改为同时允许多消
我有以下代码片段 package main import ( "os/exec" "bufio" "fmt" ) func main() { cmd := exec.Command("
我是一名优秀的程序员,十分优秀!