在微软的 Visual Studio 开发环境 ( VS2010) 下开发 C++的 Console Application 的项目,标准输出信息 ( std::cout printf ) 都是输出到控制台的 ( 也就是传说中的黑窗 ) 。有很多人是不喜欢这个黑窗口的,特别是习惯了像Eclipse 这样的 IDE 的同志,如从 Java 转到 C++ 的程序员,总想把输出信息集成到 VS 中。 其实是有一种方式可以实现这种需求的,也就是把输出信息打印到在 VS output 中, 下面以VS2010 为例进行说明。

选择你的项目,右键 property->Configuration Properties->Build Events->Post-Build Event 在右方窗口的 Command Line 栏中输入 你编译好的 exe 文件的路径 。如我的 C++Test 工程在 E:\C++Workspace\VS2010\C++Test 下,则在 Command Line 栏中 输入 E:\C++Workspace\VS2010\C++Test\Debug\C++Test.exe 。当然你的 build 的输出路径有可能会改变,为避免 Build 输出路径改变后重新更改 Command Line的值,可以输入 $(OutDir)$(ProjectName).exe ,和 E:\C++Workspace\VS2010\C++Test\Debug\C++Test.exe 的作用相同。

这样 build 结束后自动执行该 exe程序,将程序输出信息打印到 VS output 窗口 中,不需要再按F5执行run。

如我的程序:

#include <iostream>
using namespace std;
int main()
	cout << "Hello World!" << endl;
	printf("Print Hello World!");
	return 0;

output窗口的输出信息:

1>------ Build started: Project: C++Test, Configuration: Debug Win32 ------

1>Build started 2015/3/7 18:35:27.

1>InitializeBuildStatus:

1>  Creating "Debug\C++Test.unsuccessfulbuild" because "AlwaysCreate" was specified.

1>ClCompile:

1>  All outputs are up-to-date.

1>  All outputs are up-to-date.

1>ManifestResourceCompile:

1>  All outputs are up-to-date.

1>Manifest:

1>  All outputs are up-to-date.

1>LinkEmbedManifest:

1>  All outputs are up-to-date.

1>  C++Test.vcxproj -> E:\C++Workspace\VS2010\C++Test\Debug\C++Test.exe

1>CopyFilesToOutputDirectory:

1>  Copying file from "Debug\C++Test.pdb" to "E:\C++Workspace\VS2010\C++Test\Debug\C++Test.pdb".

1>PostBuildEvent:

1>  Hello World!

1>  Print Hello World!

1>FinalizeBuildStatus:

1>  Deleting file "Debug\C++Test.unsuccessfulbuild".

1>  Touching "Debug\C++Test.lastbuildstate".

1>Build succeeded.

1>Time Elapsed 00:00:01.42

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

在微软的Visual Studio开发环境(如VS2010)下开发C++的Console Application的项目,标准输出信息(如std::cout、printf等)都是输出到控制台的(也就是传说中的黑窗)。有很多人是不喜欢这个黑窗口的,特别是习惯了像Eclipse这样的IDE的同志,如从Java转到C++的程序员,总想把输出信息集成到VS中。其实是有一种方式可以实现这种需求的,也就是把输出
自定义调试信息输出   调试信息输出方法有很多种,  例如直接用printf,  或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一般是使用syslog将调试信息输出到日志文件等等…   使用标准的方法打印调试信息有时候不是很方便,  例如Qt编程, 在调试已有的代码时, 我想在打印调试信息的地方, 把代码位置也打印出来以方便定位错误, 或者需要在调试信息前面加一个前辍, 好方便在调试信息太多的时候可以用grep过滤一下, 仅显示本模块的调试信息, 这时需要一个一个地修改已有的qDebug, 使其成为以下形式:
每次都不能直接搜索到C++输出Output窗口的有效全部代码,故而自己写出来直接用 TraceOutput 和 TraceOutputW 即可 这是输出两参数的 #include <Windows.h> static wchar_t* CastToWideChar(const char* pszMultiByte) int iSize; wchar_t* pwszU...
最近工作遇到一个需求,需要将程序的输出写到终端,同时写入文件,通过查找相关的资料,发现可以用 tee 命令实现,首先来解释一下 tee 命令的作用: read from standard input and write to standard output and files. 它从标准输入读取内容并将其写到标准输出和文件。 ls | tee ls_tee.txt cat ls_tee.txt 使用 tee 时,如果想保留目标文件原有的内容,可以使用 -a 参数,附加至给出的文件,而不是覆盖它。 命令 tee 的参数选项: -a: 向文件重定向时使用追加模式
壳牌产量指南 关于shell输出的讨论 该存储库的目的是收集和讨论在shell呈现输出的准则,规则,建议(寻找最佳方法或标准方法)。 任务是定义正确的方式,在句子的末尾使用诸如... ,以通知用户正在进行的过程以及诸如此类的事情。 在计数的元素使用带有/s的伪复数(例如,列表为1项/ s) 在输出的每一行的开头使用符号(例如>>> This is a message ) 在shell输出消息的句子使用句号? $ command run --process Processing is stated... Process is done. 描述了决策工具,以及用户或开发人员可以管理和执行的可重复操作,以增加价值和知识。 这样他们就可以根据自己的结果做出决策。 来自Topics合成系统的指南增长,我们基于从决策工具结果提取的事实,建立了决策/定义
一.printf打印信息不显示在VS2005的Output窗口的问题 默认情况下VS2005的项目使用printf打印出的内容在调试时是显示到Output窗口的,但我使用VS2005一段时间后,发现printf的内容没有显示出来.百思不得其解,最后只能出了个狠招:恢复VS2005的默认配置,这个果然管用,具体步骤如下: Tools--&gt;Import and Export Setting...
printf是c保留下来的,cout 和cin是c++的输入输出流,存在于文件iostream文件,这个是C++自带的头文件 遇到问题,编译cout时,提示,找不到cout,原因:没有将iostream包含在VC++的库,解决方法:在属性-VC++的附加包含目录添加include文件:D:\Microsoft Visual Studio 10.0\VC\include。 #includ...
感谢“蓝黑墨水”的文章:http://blog.csdn.net/lanxiaziyi/article/details/37819965 在vs打印printf等常见的打印信息有时也是必要的,简单的叙述一下过程: 1、在vs打开你的解决方案。 2、鼠标移动到你的项目名称上,点击鼠标右键,再点击属性,此刻会此项目的属性页。 3、在配置属性,找到生成事件,在找到后期生成事件。
今天的博文将介绍Visual Studio的一些实用调试技巧。这是受我朋友Scott Cate (他发表过几十篇很棒的VS技术文章) 启发。他最近告诉我,许多Visual Studio下的程序员,甚至一些很有经验的开发人员,都不知道这些技巧。希望这篇文章能帮你掌握这些技巧。它们都很简单,却能帮你节约大量的时间。   跳到当前光标处(Ctrl+F10)   我经常看到人...
1.点击cocos2d-win32.vc2010.sln将cocos2d-x导入VS2010生成解决方案,然后经过漫长的编译之后,编译器会告诉你有两个项目编译失败了。这两个失败的项目是WatermelonWithMe和CocosDragonJS。 下面是单独编译Watermelon所打印的调试信息。 1>------ Build started: Project: libcocos2d, C
C++标准输入输出流(即std::cin和std::cout)是非常常用的输入输出方式,可以用于从控制台或文件读取数据,或将数据输出到控制台或文件。具体用法如下: 1. 输入数据: 从控制台读取数据: ```c++ int a; std::cin >> a; // 从控制台读取一个整数并赋值给变量a 从文件读取数据: ```c++ #include <fstream> std::ifstream fin("input.txt"); // 打开一个名为input.txt的文件 int a; fin >> a; // 从文件读取一个整数并赋值给变量a fin.close(); // 关闭文件 2. 输出数据: 输出到控制台: ```c++ int a = 10; std::cout << "a = " << a << std::endl; // 输出变量a的值到控制台,并换行 输出到文件: ```c++ #include <fstream> std::ofstream fout("output.txt"); // 打开一个名为output.txt的文件 int a = 10; fout << "a = " << a << std::endl; // 输出变量a的值到文件,并换行 fout.close(); // 关闭文件 需要注意的是,使用文件流时需要先打开文件,可以使用ifstream或ofstream类来打开,读取或写入完成后要记得关闭文件,使用close()方法即可。 此外,通过设置std::cout的格式控制符(如std::setw()、std::setprecision()等)可以对输出做更加详细的控制。