У меня проблема при обработке аргументов командной строки в простом приложении C ++, написанном в Visual Studio 2008. Я написал следующий код:
#include <iostream>
using namespace std;
int _tmain(int argc, char **argv)
{
char* c = *argv;
for(int i=0; i< argc ; ++i)
{
cout << argv[i] << endl;
}
int a;
cin >> a;
return 0;
}
Моя проблема в том, что только первый символ каждого аргумента командной строки записывается в cout
.
Я определил причину, заключающуюся в том, что символы в аргументах командной строки представлены в виде 2 байтов, поэтому каждый второй 1 байт char
содержит только нули, т.е.
Мой вопрос: почему это происходит? из того, что я нашел в примерах в сети, все должно работать так, как я написал. Кроме того, есть ли способ заставить символы в аргументах иметь 1-байтовое представление?
Надеюсь, мой вопрос достаточно ясен.