我假設你將| tee.exe output.txt
字符串放在項目屬性「Debugging | Command Argument」中。
不幸的是,該屬性只支持重定向操作符,而不支持管道操作符。如果在preoperty中有| tee.exe output.txt
字符串,並運行轉儲命令行參數的程序,則會看到該信息僅作爲參數傳遞。 「調試|命令參數」實際上並不是由完整的外殼(如cmd.exe
)處理 - 它只是支持一些簡單重定向的IDE(實際上,它似乎支持比我預期的更多):
從http://msdn.microsoft.com/en-us/library/kcw4dzyf.aspx:
You can use the following redirection operators in this box:
< file
Reads stdin from file.
> file
Writes stdout to file.
>> file
Appends stdout to file.
2> file
Writes stderr to file.
2>> file
Appends stderr to file.
2> &1
Sends stderr (2) output to same location as stdout (1).
1> &2
Sends stdout (1) output to same location as stderr (2).
你可以有你的程序的輸出重定向到使用>>
文件,並使用tail-f
命令顯示任何被添加到文件查找的內容在有限的版本。如果你這樣做,你可能想在main()
中首先調用setvbuf(stdout, NULL, _IONBF, 0)
,以便I/O無緩衝。否則tail -f
將不會看到它,直到緩衝區被刷新,我想你會看到每個輸出操作發生。
另一種方法是將控制檯窗口的「屏幕緩衝區高度」屬性設置爲很大數量 - 我在獲得新Windows機器時所做的第一件事情之一是將該值設置爲3000左右 - 然後調試正常編程並在關閉之前複製/粘貼控制檯窗口的內容。
在Pre/Post Build設置中,你在哪裏做的?使用'OutputDebugString' ..哪裏/何時? – Ajay
@ Ajay,通過調試我的意思是發佈後。當我打F5。 –
是的,但是輸出了什麼?那個出現在「調試」窗口中的? – Ajay