system()无法正常工作

时间:2015-03-21 08:53:55

标签: c system

我正在尝试从C源文件启动可执行文件。当路径中有空间时。

system("D:\\Games\\Subway Surfers\\Subway_Surfers.exe") 

它不起作用 当我更改文件夹名称并删除它的工作空间。有办法解决这个问题吗?

5 个答案:

答案 0 :(得分:1)

尝试将\替换为\\,将替换为\。您必须使用各自的转义字符替换字符。

system("\"D:\\Games\\Subway\ Surfers\\Subway_Surfers.exe\"");

此命令将被解释为:

"D:\Games\Subway Surgers\Subway_Surfers.exe"

并且,带有空格的路径周围的引号可确保字符串不会因空格而被截断。

答案 1 :(得分:1)

在路径中使用空格时必须使用转义字符。

例如:system("D:\\Games\\Subway\ Surfers\\Subway_Surfers.exe");

答案 2 :(得分:1)

谢谢你们转义字符没有用,所以我只使用了CreateProcess()函数。它很长,但即使有空格也可以正常工作

答案 3 :(得分:0)

您需要引用包含空格字符的子目录名称。例如喜欢 system("D:\\Games\\\"Subway Surfers\"\\Subway_Surfers.exe")其中\"地铁冲浪者\"引用带空格的子网。

答案 4 :(得分:0)

我找到了使用system()函数的完美解决方法。它需要参数中的一个字符串,所以我只创建一个字符串,其内容是路径,例如char path [50] =" D:\ SubwaySurfers \ SubwaySurfers.exe"然后将该函数调用为

系统(路径);

但是在一些特定的应用程序中,例如Apache(Game),无论我使用CreateProcess还是System,它都无法工作。