cmd命令默认会将标准输出(1)和错误输出(2)都打印到控制台,
要想将输出内容重定向到一个文件,如果使用:
test.exe > a.txt
则只会将标准输出的内容输出到a.txt,而test.exe中的错误输出仍然会在控制台打印出来
因为test.exe > a.txt,默认导出标准输出,相当于命令test.exe 1>a.txt
a.若错误输出也要导出,可以使用:test.exe 2>a.txt ,此时错误输出会导出到文件a.txt,但是标准输出仍然会在控制台打印
b.若只想控制台打印标准输出,可以使用:test.exe 2>nul,这样直接不导出错误输出
c.若需要将所有内容都导出到文件,可以使用:test.exe 1>a.txt 2>&1,这样就是把错误输出(2)导向了标准输出(1),然后标准输出(1)又导向了a.txt。当然这种写法,会使得所有的错误输出都写到文件后,再来将所有的标准输出写到文件,无法做到按时序写入文件。
注:c/c++中,标准输出可以是printf,std::cout;错误输出可以是std::cerr