在c ++中运行shell脚本

时间:2012-02-22 08:03:11

标签: c++

我一直在编写以下代码:

#include <iostream>  
#include <stdlib.h> 
using namespace std; 
  int main() {  
  cout << "The script will be executed"; 
  system("./simple.sh");  
} 

但是当我运行它时,首先执行shell脚本 我该怎么做才能执行“count&lt;&lt;”脚本将首先执行?“

4 个答案:

答案 0 :(得分:11)

刷新输出流缓冲区应该足够了。您可以使用

执行此操作
cout << "The script will be executed";
cout.flush();

或者,如果您还要打印换行符,则可以使用隐式刷新缓冲区的std::endl

cout << "The script will be executed" << endl;

答案 1 :(得分:1)

您没有刷新输出流。

尝试:

cout << "The script will be executed" << endl; // or cout.flush()
system("./simple.sh");

脚本执行第二次,调用cout和打印到控制台之间的延迟可能会让你失望。

答案 2 :(得分:0)

您可以使用cerr << "The script will be executed";
当您尝试使用cout打印某些内容时,它会将其保留在缓冲区中。 cerr立即打印,但@Jon回答得更好。

答案 3 :(得分:0)

在调用system()系统调用之前尝试刷新stdout流。