我有一个应用程序需要发送命令到cmd,然后得到输出(捕获输出)。如何在不使用任何MS Windows特定API的情况下使用C++来实现?有没有一种方法可以做到跨平台(例如用于Linux终端)?顺便说一句,我在赢得XP SP3。如何使用C++与命令提示符(CMD)进行通信?
我其实是指重定向输入/输出。例如,在cmd上运行命令“make”,然后在错误捕获错误消息的情况下(重定向到我的应用程序)。
我有一个应用程序需要发送命令到cmd,然后得到输出(捕获输出)。如何在不使用任何MS Windows特定API的情况下使用C++来实现?有没有一种方法可以做到跨平台(例如用于Linux终端)?顺便说一句,我在赢得XP SP3。如何使用C++与命令提示符(CMD)进行通信?
我其实是指重定向输入/输出。例如,在cmd上运行命令“make”,然后在错误捕获错误消息的情况下(重定向到我的应用程序)。
如前所述:如果你能避免在程序启动的子进程,而是融入更广泛的“工具箱的比喻,”经常可以更好...
http://en.wikipedia.org/wiki/Unix_philosophy
但是,如果这不是一个适合您的项目,请查看Boost.Process。
另外:如果你使用的是Qt(这在任何情况下都很好看),也有QProcess。
谢谢,正是我想要的。 – Amani
默认情况下,大多数系统从键盘获得他们的标准输入,因此cin通常需要从用户那里获得信息,尽管在很多情况下这可以被重定向到其他来源。
你可以这样做:
cout << "How old are you?" << endl;
int age;
cin >> age;
你就不能使用常规的CIN和cout是C++提供? (当然如果你的程序是一个GUI程序,cin和cout将不会连接到任何有用的东西,除非你调用Windows AllocConsole()命令......但这只是Windows的工作方式。如果你想要编译的代码Linux等等,你可以把#ifdef WIN32放在这个调用中)
问题很不清楚。你是否必须启动一个单独的进程并重定向其输入/输出?或者你只是问如何打印东西,并从控制台读取? –