Windows 如何打印到控制台窗口?

Windows 如何打印到控制台窗口?,windows,go,stdout,stdin,Windows,Go,Stdout,Stdin,我想从cmd运行我的go程序,如下所示: C:\go\awesomeProject> goprogramm.exe -generate -val=2 > Process started > Something went wrong. Type e-mail to receive report: > |... 希望得到如下反馈: C:\go\awesomeProject> goprogramm.exe -generate -val=2 > Proces

我想从cmd运行我的go程序,如下所示:

 C:\go\awesomeProject> goprogramm.exe -generate -val=2
> Process started
> Something went wrong. Type e-mail to receive report:
> |...
希望得到如下反馈:

 C:\go\awesomeProject> goprogramm.exe -generate -val=2
> Process started
> Something went wrong. Type e-mail to receive report:
> |...
是的,我在谷歌上搜索了很多。标准输出、go exec'ing、pipes等不能混用。

最简单的方法是使用软件包及其全局功能,例如:

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)
如果您需要更多配置或选项,以便将来将输出重定向到文件,则可以使用该软件包


一个显著的区别是默认情况下fmt包写入os.Stdout,而日志包写入os.Stderr。两者都出现在您的控制台中,但如果您想重定向这些流,则不应忘记它们。另一个区别是,如果不是以换行符结尾,日志包会在每个调用后附加一个换行符。

如何将其重定向到cmd?输出将显示在窗口中,而不进行任何重定向。我提到了重定向,因为根据使用的包重定向标准输出或标准错误时,可能会得到不同的输出。是的,输出显示在我的IDE中。但是当我从@StayCool运行exe时,它不会出现。你确定你重建并运行了最新版本的应用程序吗?首先尝试使用go run appname.go运行它,以便它始终重新编译。go tour的第一页介绍了这一点: