英文:
golang accepting input with spaces
问题
我刚开始学习GO语言,我了解在GO中,SCANF使用空格作为分隔符。
fmt.Scanf("%s",&input)
我找不到一种接受包含空格的输入作为有效字符的方法。
英文:
I'm just starting with GO and I understand that SCANF uses spaces as a separator in GO.
fmt.Scanf("%s",&input)
I cant really find a way to accepts inputs that contain spaces as valid characters.
答案1
得分: 40
你可以使用bufio.Reader和os.Stdin:
import (
"bufio"
"os"
)
in := bufio.NewReader(os.Stdin)
line, err := in.ReadString('\n')
你可以使用bufio.Reader和os.Stdin来读取标准输入中的内容。以上代码片段展示了如何导入必要的包,创建一个bufio.Reader对象,并使用ReadString方法读取输入中的一行内容。
英文:
you can use bufio.Reader and os.Stdin:
import(
"bufio"
"os"
)
in := bufio.NewReader(os.Stdin)
line, err := in.ReadString('\n')
答案2
得分: 38
与@chlin的答案类似,使用bufio来捕获整行。
fmt Scan方法将每个以空格分隔的值存储到连续的参数中。如果在标准输入中有三个参数,可以使用以下代码:
package main
import "fmt"
func main() {
var day, year int
var month string
fmt.Scanf("%d %s %d", &day, &month, &year)
fmt.Printf("captured: %d %s %d\n", day, month, year)
}
如果你不知道要读取的内容的完整格式,只想要整行的话,可以使用bufio:
package main
import (
"bufio"
"os"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan() // 使用`for scanner.Scan()`来持续读取
line := scanner.Text()
fmt.Println("captured:", line)
}
英文:
Similar to @chlin's answer, use bufio to capture whole lines.
The fmt Scan methods store each space separated value into a successive arguments. Three arguments on stdin would require something like:
package main
import "fmt"
func main() {
var day, year int
var month string
fmt.Scanf("%d %s %d", &day, &month, &year)
fmt.Printf("captured: %d %s %d\n", day, month, year)
}
If you don't know the full format of what you will be reading and just want the line, use bufio:
package main
import (
"bufio"
"os"
)
func main(){
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan() // use `for scanner.Scan()` to keep reading
line := scanner.Text()
fmt.Println("captured:",line)
}
答案3
得分: -5
当用户按下回车键时,表示输入结束。
这看起来像是fmt.Scanln
。
Scanln
类似于Scan
,但在换行符处停止扫描,并且在最后一项之后必须有一个换行符或EOF。
英文:
> When the user presses enter it signifies the end of input
That looks like fmt.Scanln
> Scanln
is similar to Scan
, but stops scanning at a newline and after the final item there must be a newline or EOF.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论