启用控制台应用程序';输出到脚本 我有一个小的C++控制台应用程序,它提供一个菜单,然后执行所选择的操作。

启用控制台应用程序';输出到脚本 我有一个小的C++控制台应用程序,它提供一个菜单,然后执行所选择的操作。,c++,vbscript,console-application,stdout,stdin,C++,Vbscript,Console Application,Stdout,Stdin,此外,我还编写了一个VBScript,它在标准输出上运行(由Exec实现),并将值输入标准输出 但是,当我试图执行此脚本时,控制台应用程序被困在scanf调用中,脚本没有从输出中接收任何内容_flushall()没有帮助 有人知道吗 谢谢。这在VBScript/Windows脚本主机上非常困难,因为没有非阻塞IO。换句话说,没有办法说“立即阅读所有可用的内容,然后立即返回” 如果你说ReadLine,它会读一行。如果现在没有准备好的线路,它将等待一个 如果您说ReadAll,它将一直读取,直到

此外,我还编写了一个VBScript,它在标准输出上运行(由Exec实现),并将值输入标准输出

但是,当我试图执行此脚本时,控制台应用程序被困在scanf调用中,脚本没有从输出中接收任何内容_flushall()没有帮助

有人知道吗


谢谢。

这在VBScript/Windows脚本主机上非常困难,因为没有非阻塞IO。换句话说,没有办法说“立即阅读所有可用的内容,然后立即返回”

  • 如果你说ReadLine,它会读一行。如果现在没有准备好的线路,它将等待一个
  • 如果您说ReadAll,它将一直读取,直到文件句柄关闭,即直到程序退出。在那之前它不会回来
只要您确切地知道程序在各种情况下将创建什么输出,就可以从脚本执行此操作


在大多数情况下,如果可能,最好将程序设置为非交互式“批处理”模式,即程序接受命令但不需要响应提示。

VBScript甚至可以这样做吗?你至少需要一个邮政编码来说明你是如何启动C++程序的,以及你是如何写给STDUT的。谢谢youm Hans。C++代码由简单的打印()(写到STDUT,在控制台应用程序中它转到屏幕)和SCANF()(从STDIN读取)调用。你确信你写的管道是脚本的STDIN吗?代码会有帮助的。我是不是遗漏了什么?printf/scanf不是指StdIn/StdOut吗?我不知道这是否与您的问题有关,但最好避免使用
scanf
。同样,post代码(包括VBScript)。