c++;等待系统调用 我正在使用C++中的文件。 我在系统提示符下调用一个程序来创建一个txt文件。然后我用C++读取那个文件。 在读取文件之前,我需要确保C++等待程序完成。

c++;等待系统调用 我正在使用C++中的文件。 我在系统提示符下调用一个程序来创建一个txt文件。然后我用C++读取那个文件。 在读取文件之前,我需要确保C++等待程序完成。,c++,system,call,C++,System,Call,C++的一种解释: createOutputFile(); system("Start wp/PRO386W.EXE /V1 consult('wp/read.pl')."); // I need to wait for this "PRO386W.EXE to finish readLista();//before calling this method 如果程序WP/PRO386W.exe是一个控制台程序,只需删除Start,即可使程序在后台运行。UPD:可能您必须使用反斜杠:“WP\\

C++的一种解释:

createOutputFile(); 
system("Start wp/PRO386W.EXE /V1 consult('wp/read.pl').");
// I need to wait for this "PRO386W.EXE to finish
readLista();//before calling this method

如果程序
WP/PRO386W.exe
是一个控制台程序,只需删除
Start
,即可使程序在后台运行。UPD:可能您必须使用反斜杠:
“WP\\PRO386W.exe…”

如果程序
WP/PRO386W.exe
是一个控制台程序,只需删除
Start
,这会使程序在后台运行。UPD:可能您必须使用反斜杠:
“WP\\PRO386W.exe…”

system()等待命令完成。在您的例子中,“命令”是“开始”,这会将其强制到后台。删除“开始”,你应该是好的。如果确实需要异步,则需要以不同的方式启动进程。

system()等待命令完成。在您的例子中,“命令”是“开始”,这会将其强制到后台。删除“开始”,你应该是好的。如果确实需要异步,则需要以不同的方式启动进程。

您可以随时检查文件结尾。假设fin是ifstream类型,那么您可以检查f(!fin.eof())

您可以始终检查文件的结尾。假设fin是ifstream类型,那么您可以检查f(!fin.eof())

使用
CreateProcess
而不是
system()
,您可以等待返回的句柄。使用
CreateProcess
而不是
system()
可以等待返回的句柄。我尝试了系统(“wp/PRO386W.EXE/V1 consult('wp/read.pl');它也不起作用。它不起作用是因为你不能在Windows上启动这样的程序。使用CreateProcess并等待CreateProcess返回的句柄;我尝试了这个系统(“wp/PRO386W.EXE/V1 consult('wp/read.pl');它也不起作用。它不起作用是因为你不能在Windows上启动这样的程序。使用CreateProcess并等待CreateProcess返回的句柄;什么。。。我想你不明白什么是
istream::eof
检查或者它的意思。什么是。。。我认为您不理解什么是
istream::eof
检查或它的含义。