我想像这样从 cmd 运行我的 go 程序:
C:\go\awesomeProject> goprogramm.exe -generate -val=2
并希望得到这样的反馈:
> Process started
> Something went wrong. Type e-mail to receive report:
> |...
是的,我用谷歌搜索了很多。标准输出、执行、管道等。不能混为一谈。
最佳答案
最简单的是使用 fmt
包及其全局函数,例如:
fmt.Println("Process started")
fmt.Println("Something went wrong. Type e-mail to receive report:")
var i int = 3
var err error = io.Eof
fmt.Printf("And some formatted text: number: %d, an error: %v\n", i, err)
如果您需要更多配置或重定向输出的选项,例如到一个文件(将来),那么你可以使用 log
包。
log.Println("Process started")
log.Println("Something went wrong. Type e-mail to receive report:")
var i int = 3
var err error = io.Eof
log.Printf("And some formatted text: number: %d, an error: %v", i, err)
一个显着的区别是默认情况下 fmt
包写入 os.Stdout
,而 log
包默认写入 os .标准错误
。两者都出现在您的控制台中,但如果您想重定向这些流,则不应忘记。另一个区别是 log
包会在每个调用后附加一个换行符,如果它不是以一个结束的话。
关于windows - 如何打印到控制台窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51417299/