我使用它来收集输入然后显示输入,但是当我这样做时,“某事”文本将以新行显示,但我希望文本显示在同一行中,任何想法?
func main() {
fmt.Println("Example")
print("example: ")
in := bufio.NewReader(os.Stdin);
input, err := in.ReadString('\n');
if err != nil {
fmt.Println("Error: ", err)
}
fmt.Println(input, "something")
}
答案 0 :(得分:3)
从input
修剪换行符。例如,
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
fmt.Println("Example")
print("example: ")
in := bufio.NewReader(os.Stdin)
input, err := in.ReadString('\n')
if err != nil {
fmt.Println("Error: ", err)
return
}
fmt.Println(strings.TrimRight(input, "\n"), "something")
}
输入/输出:
Example
example: some input
some input something
答案 1 :(得分:2)
fmt.Println()
会自动在其输出结尾添加换行符。
您可以尝试使用Printf,它采用“格式字符串”和输入列表。
一个例子是:
func main() {
fmt.Println("Example")
print("example: ")
in := bufio.NewReader(os.Stdin);
input, err := in.ReadString('\n');
if err != nil {
fmt.Println("Error: ", err)
}
fmt.Printf("something : %s", input)
}
在这种情况下,%s是字符串类型的占位符。 所有占位符都可以在fmt godoc中找到:http://golang.org/pkg/fmt/
此外,如果输入本身在结尾处有换行符,您可以使用包Trim
中的strings
来拉出\ n字符。
答案 2 :(得分:0)
在Windows上(不确定是否相关)以前的答案都不适用于我。以下是我找到的解决方案:https://groups.google.com/d/msg/golang-nuts/hWoESdeZ398/qDbTogJhj88J链接到https://play.golang.org/p/_9N_RwmBvd
基本想法是,不是使用strings.TrimRight(input, "\n")
,而是包含\r
字符,例如strings.TrimRight(input, "\r\n")
这解决了OP问题。
固定输入剥离的OP代码!
func main() {
fmt.Println("Example")
print("example: ")
in := bufio.NewReader(os.Stdin);
input, err := in.ReadString('\n');
if err != nil {
fmt.Println("Error: ", err)
}
fmt.Println(strings.TrimRight(input, "\r\n"), "something")
}
PS:对不起,我只是希望拯救某人浪费20分钟的谷歌搜索!