回答

收藏

如何从控制台中的标准输入读取?

技术问答 技术问答 282 人阅读 | 0 人回复 | 2023-09-12

我想从命令行中读取标准输入,但我的尝试以提示我输入前退出的程序结束。C# 寻找等效Console.ReadLine()。- S% M/ }) K' z  s' p: M  J$ d
这是我目前拥有的:
" m7 H/ q9 n$ N7 M1 @5 K, O
    package mainimport  "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)}
    $ b# e5 r$ ]# k9 d3 B. N  n( _
               
4 p/ C# [- M9 q" s    解决方案:                                                               
7 c0 v0 Q4 H: |0 t; d" x- T6 n                                                                我不确定块有什么问题。
6 O4 K2 h) |2 D- S4 }3 k9 C
    reader := bufio.NewReader(os.Stdin)fmt.Print("Enter text: ")text,_ := reader.ReadString('\n')fmt.Println(text)! ~$ h: Y9 C2 \- N3 K4 N
因为它在我的机器上工作。但是,对于下一个块,您需要一个指向输入的变量指针。试着更换它fmt.Scanln(text2)为fmt.Scanln(&text2). 不要使用Sscanln,因为它会分析内存中现有的字符串,而不是标准输入的字符串。如果你想做你想做的事,请用它代替它fmt.Scanf("%s",&ln)
+ Y5 W* t9 b4 g9 _% L. e7 i1 C如果这仍然不起作用,你的罪魁祸首可能是一些奇怪的系统设置或缺陷 IDE。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则