Wypisywanie argumentów z lini poleceń

0

Witam.
Problem..., big problem... Ja pisać w vs2008:

int _tmain(int argc, char* argv[])
{
	int i = 0;
	while(i < argc)
	{
	cout << "argv[i]: " << argv[i] << endl;
	i++;
	}
	system("PAUSE");
	return 0;
}

Potem w lini poleceń słowa:
gen ej bi si
oczekiwam:

gen
ej
bi
si

a patrzę:

g
e
b
s

Warum und why? Thank you for your all valuable comments.

0
#include <iostream>

int main(int argc, char** argv)
{
  argc--; argv++; //omit program's executable file path
  for(int i = 0; i < argc; i++)
  {
    std::cout << argv[i] << "\n";
  }
}
0

Albo używasz tcharów:

int _tmain(int argc, _TCHAR* argv[])

albo char'ów:

int main(int argc, char* argv[])

albo wchar'ów:

int wmain(int argc, wchar_t* argv[])

Nie mieszaj.

0

Dzięki chłopaki.

0
int main(int argc, char** argv) {
  while(*++argv) cout << *argv << endl;
}
0

Jeszcze jedno pytanie:
w momencie kiedy zmienię nazwę funkcji main na wmain lub _tmain to kod ten wyświetla adresy a nie zawartości tych adresów. Dlaczego tak się dzieje i jak sprawić aby wyświetlały się dane wprowadzone z lini poleceń. Z góry dzięki za odpowiedzi.

0

cout wyświetla tylko char'y.
W Windowsie do wyświetlania wchar'ów/tchar'ów musisz użyć funkcji z rodziny WriteConsole lub przed wyświetleniem skonwertować je na char'y - wcstombs(tylko wchar'y), wsprintf, StringCchPrinf.

0

Dzięki adf88.

1 użytkowników online, w tym zalogowanych: 0, gości: 1