C system() 函數和處理參數空間
在C 中使用system() 函數執行程式時,必須請注意命令和參數參數中的空格。如果可執行路徑和參數路徑中都存在空格,則可能會導致錯誤。
在提供的程式碼中:
<code class="cpp">system("\"C:\Users\Adam\Desktop\pdftotext\" -layout \"C:\Users\Adam\Desktop\week 4.pdf\"");</code>
錯誤“檔案名稱、目錄名稱、或卷標語法不正確”,因為system() 命令由於不帶引號的路徑而將整個字串識別為可執行檔的名稱。要修正此問題,請按如下方式引用整個命令字串:
<code class="cpp">system("\"\"C:\Users\Adam\Desktop\pdftotext\" -layout \"C:\Users\Adam\Desktop\week 4.pdf\"\"");</code>
此外,了解 Windows 中 system() 函數的行為至關重要。預設情況下,它使用“cmd /C”調用命令,該命令根據以下規則處理引號:
在給定的範例中,不滿足第一條規則,因此system() 函數將"C:UsersAdamDesktoppdftotext" -layout "C:UsersAdamDesktopweek 4.pdf" 解釋為可執行檔名稱,從而產生錯誤。
為了確保正確的命令處理,建議用雙引號引用整個字串,並可能添加 /S 開關以確保完整性:
<code class="cpp">system("cmd /S /C \"\"C:\Users\Adam\Desktop\pdftotext\" -layout \"C:\Users\Adam\Desktop\week 4.pdf\"\"");</code>
以上是使用 C `system()` 函數時如何處理參數中的空格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!