我正在使用ideone在線解釋器(http://ideone.com/)來測試一些C++和Python程序。如何指定命令行參數而不是使用STDIN輸入?如何在使用ideone時傳入命令行參數?
13
A
回答
9
看起來就像你不能,但快速黑客應該做的伎倆:
static char * const ARGV[] = { "myprog", "hello", "world", NULL };
int main(int argc, char * argv[])
{
argc = 3;
argv = ARGV;
// ...
}
或標準輸入轉換爲args:
#include <vector>
#include <string>
#include <iterator>
#include <iostream>
std::vector<char *> fabricate(std::vector<std::string> & v)
{
std::vector<char *> res(v.size() + 1, NULL);
for (std::size_t i = 0; i != v.size(); ++i) { res[i] = &v[i][0]; }
return res;
}
std::vector<std::string> args_vector((std::istream_iterator<std::string>(std::cin)), std::istream_iterator<std::string>());
std::vector<char *> argv_vector = fabricate(args_vector);
int main(int argc, char * argv[])
{
argc = args_vector.size();
argv = argv_vector.data();
// ...
}
+0
我想這將不得不做。對於Python程序怎麼樣? – lifebalance
+0
@lifebalance:err ...「同樣」? :-) –
+0
我更喜歡第二種方法。將欣賞一些等效的Python代碼以及。謝謝! – lifebalance
2
只是初始化模擬命令行參數
static char *argv[] = {"program_name", "1st argument", "2nd argument", NULL};
static int argc = 3;
int main() {
}
5
在python中你c一個硬編碼是這樣的:
import sys
print sys.argv
sys.argv[1:] = ["test1", "test2"]
print sys.argv
這將輸出:
['prog.py']
['prog.py', 'test1', 'test2']
從標準輸入讀取:
import sys
import shlex
print sys.argv
sys.argv[1:] = shlex.split(None)
print sys.argv
相關問題
- 1. 如何在運行時在CTest中傳遞命令行參數
- 2. 如何傳遞命令行參數?
- 3. 如何在命令行中使用getopt傳遞參數
- 4. 如何在PHP中使用WScript.Shell傳遞命令行參數?
- 5. 如何在C中的命令行參數傳入空字符?
- 6. 如何使用命令行參數
- 7. 如何使用參數執行命令?
- 8. 使用命令行輸入參數
- 9. 傳遞命令行參數
- 10. 傳遞命令行參數
- 11. 命令行參數傳遞
- 12. 傳遞命令行參數
- 13. 傳遞命令行參數
- 14. 使用命令行參數
- 15. 傳遞命令行參數,參數
- 16. 命令行輸入(參數)
- 17. 如何在Mac應用程序中傳遞命令行參數
- 18. 傳遞命令行參數在Python
- 19. 在perl中傳遞命令行參數
- 20. 傳遞命令行參數在mvn exec:exec
- 21. 在C++中傳遞命令行參數
- 22. 如何使用for循環插入命令行參數?
- 23. 如何在ARGV命令行參數中傳遞數組?
- 24. 在creationComplete中使用命令行參數
- 25. 在VBscript中使用命令行參數
- 26. 使用命令行參數時無法寫入文件
- 27. 如何在使用su時在命令行上傳遞密碼
- 28. 如何使用命令行參數解析幾個參數
- 29. 使用命令行參數輸入參數
- 30. 使用系統命令傳遞參數
從我可以告訴,它看起來並不像您可以。 –