我用 读一行,然后我用 读一个字符串。bufio.NewReader(os.Stdin)fmt.Scanfpackage mainimport ( "fmt" "bufio" "os" )func main() { reader := bufio.NewReader(os.Stdin) var str string inp, _ := reader.ReadString('\n') fmt.Scanf("%s", &str) fmt.Println(inp) fmt.Printf(str)}输入:This is a sentence.John我希望输出如上所示,但事实并非如此。输出:This is a sentence.实际上不起作用。问题出在哪里?和如何修复它?fmt.Scanf("%s", &str)
1 回答
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
读者。读字符串(delim) 读取所有内容,包括分隔符。因此,它在两个输入之间添加 \n。断续器Printf(str) 最后没有 \n,因此第二个输出粘附到打印到 stdout 的下一个内容。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var str string
inp, _ := reader.ReadString('\n')
fmt.Scanf("%s", &str)
fmt.Println(inp)
fmt.Printf(str)
}
输入:
some line
John
输出:
some line
John
下面是按所需运行的代码。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var str string
inp, _ := reader.ReadString('\n')
fmt.Scanf("%s", &str)
fmt.Print(inp)
fmt.Printf("%s\n", str)
}
- 1 回答
- 0 关注
- 99 浏览
添加回答
举报
0/150
提交
取消