468,539 Members | 1,487 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,539 developers. It's quick & easy.

when i compile the cpp file(cmdargs.cpp) int main(int argc, wchar_t* argv[])

Hai
when i compile the cpp file(cmdargs.cpp) i attached the output below
the program

int main(int argc, wchar_t* argv[])
{

std::wcout<<L"Name of the Program is
"<<*argv[0]<<std::endl;
std::wcout<<L" Argument Count "<<argc-1<<std::endl;
for(int args=1;args<argc;args++)
{
std::wcout<<L"Argument "<<args<<" is "<<
*(argv[args])<<std::endl;
}
return 0;
}
output :
~~~~~~~~~~~~~~
Name of the Program is

-->

-->

-->

-->

#include<iostream>
#include <stdlib.h>
int main(int argc, wchar_t* argv[])
{
std::cout<<"Name of the Program is
"<<*argv[0]<<std::endl;
std::cout<<" Argument Count "<<argc-1<<std::endl;
for(int args=1;args<argc;args++)
{
std::cout<<"Argument "<<args<<" is "<<
*(argv[args])<<std::endl;
}
return 0;
}
cmdargs asd fgh jkl

output :
~~~~~~~~~~~~~~

Name of the Program is 1668113505
Argument Count 3
Argument 1 is 1634952192
Argument 2 is 1718052864
Argument 3 is 1785424896

-->

-->

-->

-->
here i got some nos but i want the strings how i can print the
values..plz help he
Thanks in advance

Jul 23 '05 #1
9 2578
Vinu wrote:
Hai
when i compile the cpp file(cmdargs.cpp) i attached the output below
the program

int main(int argc, wchar_t* argv[])
{

std::wcout<<L"Name of the Program is
"<<*argv[0]<<std::endl;
std::wcout<<L" Argument Count "<<argc-1<<std::endl;
for(int args=1;args<argc;args++)
{
std::wcout<<L"Argument "<<args<<" is "<<
*(argv[args])<<std::endl;
}
return 0;
}
output :
~~~~~~~~~~~~~~
Name of the Program is

-->

-->

-->

-->

#include<iostream>
#include <stdlib.h>
int main(int argc, wchar_t* argv[])
Does your implementation support that signature for main? Standard C++
guarantees only

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

.. Any other variants would be implementation-defined.
{
std::cout<<"Name of the Program is
"<<*argv[0]<<std::endl;
If you use wide characters, use a wide stream. And *argv[0] is a single
character.
std::cout<<" Argument Count "<<argc-1<<std::endl;
for(int args=1;args<argc;args++)
{
std::cout<<"Argument "<<args<<" is "<<
*(argv[args])<<std::endl;
}
return 0;
}
cmdargs asd fgh jkl

output :
~~~~~~~~~~~~~~

Name of the Program is 1668113505


When sending a wchar_t to a char based stream, it is printed as an integer,
not as a character.

Jul 23 '05 #2

Hai Rolf Magnus

the real problem is when i try ti access it give Bus Error (Core Dump)
i don't no why? when i try to access the varible argv[1] or
argv[argc-1] anything it gives the Bus Error
Thanks

Jul 23 '05 #3
"Vinu" <vi*********@yahoo.com> wrote in news:1115210388.421215.119270
@z14g2000cwz.googlegroups.com:
Hai
when i compile the cpp file(cmdargs.cpp) i attached the output below
the program

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


Bzzt. Non-standard main. You probably want:

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

make appropriate changes throughout your application to follow suit.

Jul 23 '05 #4
don't consider it as main consider it as a function whic is passing int
and a wchar_t*
ok

Jul 23 '05 #5
Vinu wrote:

Hai Rolf Magnus

the real problem is when i try ti access it give Bus Error (Core Dump)
i don't no why? when i try to access the varible argv[1] or
argv[argc-1] anything it gives the Bus Error


So I ask you again: Does your compiler documentation explicitly say that it
supports an argv of type wchar_t*[]?

Jul 23 '05 #6
ya
compiler supports an argv of type wchar_t*[]

wchar_t internal representation is diff?

Jul 23 '05 #7
"Vinu" <vi*********@yahoo.com> wrote in news:1115214575.056647.316190
@f14g2000cwb.googlegroups.com:
ya
compiler supports an argv of type wchar_t*[]

wchar_t internal representation is diff?


Have you checked your compiler's documentation on the acceptable forms of
main(), or are you assuming that since is compiles, it's supported? (What
is your compiler and platform?)

Jul 23 '05 #8
use int main(int argc, char * argv[]) and cout
even if you use wcout everything is still converted to chars before
printing. Try to verify this with wchar_t based ofstream and see if
your output file contains wide chars or not.
Wasn't you the one who asked about command arguments classes?
http://boost.org/doc/html/program_options.html is a really good
alternative. Use it, don't try to envent yours own

Jul 23 '05 #9
g++ & unix

Jul 23 '05 #10

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

19 posts views Thread by Steven T. Hatton | last post: by
13 posts views Thread by Sokar | last post: by
9 posts views Thread by pkirk25 | last post: by
reply views Thread by NPC403 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.