我一直在编写以下代码:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
cout << "The script will be executed";
system("./simple.sh");
}
但是当我运行它时,首先执行shell脚本 我该怎么做才能执行“count&lt;&lt;”脚本将首先执行?“
答案 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流。