В простом C ++ вы можете использовать аргументы main
:
#include <iostream>
int main( int argc, char* argv[] )
{
using namespace std;
cout << argc << " arguments:" << endl;
for( int i = 0; i < argc; ++i )
{
cout << "[" << argv[i] << "]" << endl;
}
}
Но есть проблема с этим , а именно, что C и C ++ main
были разработаны для * nix, а не для Windows. Святой стандарт C ++ рекомендует, чтобы среда выполнения предоставляла main
аргументы в кодировке UTF-8, но, увы, этого не происходит с обычными компиляторами Windows C ++. Таким образом, в Windows этот метод может не работать для имен файлов, например Норвежские, греческие или русские символы.
В Windows для программы, предназначенной для использования другими, вместо этого можно использовать (Unicode-версию) функцию Windows API GetCommandLine
и ее двоюродного брата синтаксического анализатора CommandLineToArgvW
чтобы разделить командную строку на отдельные аргументы.
В качестве альтернативы, с реализациями Microsoft языков C и C ++ вы можете использовать нестандартную функцию запуска wmain
. Я не рекомендую это, однако. Я думаю, что было бы хорошей идеей придерживаться международных стандартов для C и C ++ настолько, насколько это практически возможно, и, безусловно, нет особой причины использовать wmain
, хотя это может быть удобно для небольших игрушечных программ.
Приветствия и hth.,