[英]Passing values to main(int, char**)
我有一個顯示ascii值和字母的程序,但是現在我修改了該程序以僅顯示我要查找的西班牙語字符。 該程序稱為,是的,您知道它為“ ascii”。 用戶要做的是鍵入C:>ascii
或C:>ascii all
來顯示所有ascii字符。 要僅顯示西班牙語字符,用戶必須輸入C:>ascii es
。
為此,我編寫了這個簡單的程序
int main(int argc, char** argv) {
if(argv[0] == "es"){
abc::ascii_es();
}
if(argv[0] == "all"){
abc::ascii_all();
}
else
abc::ascii_es();
return 0;
}
但是程序總是在else條件關鍵字中跳轉到ascii_es
方法。 我究竟做錯了什么?
std::string
或使用strcmp(...) == 0
來解決此問題。 argv[0]
是您的程序的名稱。 第一個參數使用argv[1]
。 argv[1]
將導致未定義的行為。 #include <string>
int main(int argc, char** argv) {
if (argc < 2)
abc::ascii_es();
else if (argv[1] == std::string("es"))
abc::ascii_es();
else if (argv[1] == std::string("all"))
abc::ascii_all();
else
abc::ascii_es();
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.