我一直寫如下因素代碼:運行shell腳本++
#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
cout << "The script will be executed";
system("./simple.sh");
}
但是當我運行它第一次執行shell腳本。
我能做些什麼來執行「cout < <」該腳本將首先執行「」?
我一直寫如下因素代碼:運行shell腳本++
#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
cout << "The script will be executed";
system("./simple.sh");
}
但是當我運行它第一次執行shell腳本。
我能做些什麼來執行「cout < <」該腳本將首先執行「」?
刷新輸出流緩衝區應該足夠了。你可以用
cout << "The script will be executed";
cout.flush();
或者做到這一點,如果你打算同時打印一個換行符,那麼你可以使用std::endl
含蓄地刷新緩衝區:
cout << "The script will be executed" << endl;
可以使用cerr << "The script will be executed";
當你」重新嘗試使用cout
打印某些東西,它將它保留在緩衝區中。 cerr
正在立即打印,但@Jon回答得更好。
嘗試在調用system()系統調用之前清除stdout流。
您不會刷新輸出流。
嘗試:
cout << "The script will be executed" << endl; // or cout.flush()
system("./simple.sh");
該腳本執行第二次,調用cout
和打印到控制檯之間的延遲可能是你扔了。