首页 > 后端开发 > C++ > 正文

如何在 C 中使用'system()”执行参数包含空格的程序?

Patricia Arquette
发布: 2024-11-02 02:37:30
原创
941 人浏览过

How to Execute Programs with Parameters Containing Spaces Using `system()` in C  ?

C system() 调用因包含空格的参数而失败

当使用 system() 执行参数包含空格的程序时,遇到的常见错误是:

The filename, directory name, or volume label syntax is incorrect.
登录后复制

当可执行路径和参数路径都包含空格时会出现这种情况。

例如以下代码:

<code class="cpp">#include <stdlib.h>
#include <conio.h>

int main() {
  system("\"C:\Users\Adam\Desktop\pdftotext\" -layout \"C:\Users\Adam\Desktop\week 4.pdf\"");
  _getch();
}</code>
登录后复制

生成由于“pdftotext”路径和 PDF 文件路径中存在空格而出现错误消息。

出现此问题的原因是 system() 将其参数传递给 cmd /k,它将第一个引号字符解释为可执行文件名称的开头和第二个引号字符作为可执行文件名称的结尾。因此,命令行解析错误,导致错误。

要解决此问题,可以将命令用双引号括起来:

<code class="cpp">system("\"\"C:\Users\Adam\Desktop\pdftotext\" -layout \"C:\Users\Adam\Desktop\week 4.pdf\"\"");</code>
登录后复制

或者 cmd /S可用于强制严格解释命令行,无需特殊的解析规则:

<code class="cpp">system("cmd /S /C \"\"C:\Users\Adam\Desktop\pdftotext\" -layout \"C:\Users\Adam\Desktop\week 4.pdf\"\"");</code>
登录后复制

通过应用这些解决方案,system() 调用可以成功执行参数包含空格的程序。

以上是如何在 C 中使用'system()”执行参数包含空格的程序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!