登录
首页 >  Golang >  Go问答

输出奇异的打印效果

来源:stackoverflow

时间:2024-02-14 15:39:23 401浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《输出奇异的打印效果》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

当我在 online go 编译器中执行以下代码时,它按预期工作,但是当我在我的计算机(golang 1.17.5)中执行此代码时。它打印出奇怪的输出。

package main

import (
    "fmt"
    "os"
)
//variables
var (
    countries = []string{"au", "in", "jp", "kr", "tr"}
    country   string
)
//main function
func main() {
    if len(os.args) < 2 {
        fmt.printf("country code : ")
        fmt.scanf("%s", &country)
        checkcountry(&country)

        // log.printf("")
    } else {
        checkcountry(&country)

    }

}

//检查输入的字符串是否属于国家string_array

func checkcountry(country *string) {

    for 1 == 1 {

        if is_string_in_array(*country, countries) {
            fmt.printf("country : %s, breaking\n", *country)
            break
        } else {
            fmt.printf("country code : ")
            fmt.scanf("%s", country)
        }
    }

}
func is_string_in_array(str string, array []string) bool {
    for _, i := range array {
        if str == i {
            return true
        }
    }
    return false
}

repl.it 终端输出:

go run main.go
country code : dd
country code :

我的终端输出:

go run main.go
country code : dd
country code : country code :

正确答案


您可以使用 bufio 包来代替 fmt.scanf 包来读取输入,如下例所示,该示例解析输入直到换行。

reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println(text)

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>