我想从命令行读取标准输入,但在提示输入之前,我的尝试已经以程序退出而告终。我正在寻找c#中的Console.ReadLine()的等效。
这是我目前拥有的:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println(text)
fmt.Println("Enter text: ")
text2 := ""
fmt.Scanln(text2)
fmt.Println(text2)
ln := ""
fmt.Sscanln("%v", ln)
fmt.Println(ln)
}
我不知道这个积木有什么问题
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println(text)
因为它在我的机器上工作。然而,对于下一个块,你需要一个指向你分配输入的变量的指针。尝试用fmt.Scanln(&text2)替换fmt.Scanln(&text2)。不要使用Sscanln,因为它解析内存中已经存在的字符串,而不是来自stdin的字符串。如果您想要做一些类似于您试图做的事情,请用fmt替换它。Scanf(“% s”,ln)
如果这仍然不能工作,你的罪魁祸首可能是一些奇怪的系统设置或有bug的IDE。
我不知道这个积木有什么问题
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println(text)
因为它在我的机器上工作。然而,对于下一个块,你需要一个指向你分配输入的变量的指针。尝试用fmt.Scanln(&text2)替换fmt.Scanln(&text2)。不要使用Sscanln,因为它解析内存中已经存在的字符串,而不是来自stdin的字符串。如果您想要做一些类似于您试图做的事情,请用fmt替换它。Scanf(“% s”,ln)
如果这仍然不能工作,你的罪魁祸首可能是一些奇怪的系统设置或有bug的IDE。