![](/img/trans.png)
[英]How do I create a --help option in a command-line program in c/c++?
[英]How do I create a C++ program that passes command line arguments to a shell script?
我以前從未使用過 C++,我的教授說這應該“非常簡單”,但我想不通。 這是我到目前為止:
#include <iostream>
#include <cstdio>
#include <cstdlib>
int main(int argc, char *argv[])
{
char command[50];
if (argc==2)
system(command, "./findName.sh", argv[1]);
}
return 0;
我的 shell 腳本在我自己運行時可以工作,但我不確定如何使用 C++ 程序來運行它。 對於 shell 腳本,用戶應該像這樣輸入用戶 ID:
./findName.sh userID
程序從一個包含姓名和用戶 ID 的文件中返回此人的姓名,如下所示:
LastName, FirstName
對於C++程序,需要將用戶輸入的信息傳遞給shell腳本,並返回相同的結果。
正如我所說,我以前從未使用過 C++,所以我不知道這些是否正確。 這是我在網上找到的東西的混合。 謝謝大家的幫助!!
我發現最簡單的方法是使用std::string ,因為它允許您輕松連接字符串。
#include <string>
#include <cstdlib>
int main(int argc, char* argv[])
{
std::string command = "./findName.sh";
if(argc == 2)
std::system((command + " " + argv[1]).c_str());
}
但是要了解為什么這樣做有效,您需要學習一些書籍。
首先,您需要先編譯程序,然后才能運行它。 如果你的源代碼文件名是progname.cpp
你應該可以使用這個命令:
g++ -o progname progname.cpp
然后像這樣運行程序:
./progname userID
1) system("abc.sh" + para1 + " " + para2); 但是這種方法有一個限制,你可以傳入的最大長度是 MAX_ARG_STRLEN 定義為 131072 字節 = 32 頁內存。
2) 打開一個文件並將所有的值讀到文件系統("abc.sh < yourfile.txt"); 這種方法有點間接,但是您可以將無限大小的值放入 sh 中,使用從 buf(或鍵盤)中的正常讀取
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.