1. ホーム
  2. go

[解決済み] コンソールで標準入力から読み込むにはどうすればよいですか?

2022-03-16 03:19:07

質問

コマンドラインから標準入力を読み取りたいのですが、入力のプロンプトが出る前にプログラムが終了してしまいます。以下に相当するものを探しています。 コンソール.ReadLine() をC#で作成しました。

現在、私が持っているのはこれです。

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 なぜなら、これは標準入力からではなく、すでにメモリ上にある文字列をパースするからです。もし、あなたがやろうとしていたようなことをしたいのであれば、これを fmt.Scanf("%s", &ln)

それでもうまくいかない場合は、システムの設定がおかしいか、IDEがバグっていることが原因かもしれません。