Connecting Tech Pros Worldwide Help | Site Map

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

  #1  
Old July 23rd, 2005, 04:57 AM
Vinu
Guest
 
Posts: n/a
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

  #2  
Old July 23rd, 2005, 04:57 AM
Rolf Magnus
Guest
 
Posts: n/a

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


Vinu wrote:
[color=blue]
> 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[])[/color]

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.
[color=blue]
> {
> std::cout<<"Name of the Program is
> "<<*argv[0]<<std::endl;[/color]

If you use wide characters, use a wide stream. And *argv[0] is a single
character.
[color=blue]
> 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[/color]

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

  #3  
Old July 23rd, 2005, 04:57 AM
Vinu
Guest
 
Posts: n/a

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



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

  #4  
Old July 23rd, 2005, 04:57 AM
Andre Kostur
Guest
 
Posts: n/a

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


"Vinu" <vinuwarrier@yahoo.com> wrote in news:1115210388.421215.119270
@z14g2000cwz.googlegroups.com:
[color=blue]
> Hai
> when i compile the cpp file(cmdargs.cpp) i attached the output below
> the program
>
> int main(int argc, wchar_t* argv[])[/color]

Bzzt. Non-standard main. You probably want:

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

make appropriate changes throughout your application to follow suit.

  #5  
Old July 23rd, 2005, 04:57 AM
Vinu
Guest
 
Posts: n/a

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


don't consider it as main consider it as a function whic is passing int
and a wchar_t*
ok

  #6  
Old July 23rd, 2005, 04:57 AM
Rolf Magnus
Guest
 
Posts: n/a

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


Vinu wrote:
[color=blue]
>
> 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[/color]

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

  #7  
Old July 23rd, 2005, 04:57 AM
Vinu
Guest
 
Posts: n/a

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


ya
compiler supports an argv of type wchar_t*[]

wchar_t internal representation is diff?

  #8  
Old July 23rd, 2005, 04:57 AM
Andre Kostur
Guest
 
Posts: n/a

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


"Vinu" <vinuwarrier@yahoo.com> wrote in news:1115214575.056647.316190
@f14g2000cwb.googlegroups.com:
[color=blue]
> ya
> compiler supports an argv of type wchar_t*[]
>
> wchar_t internal representation is diff?
>
>[/color]

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?)

  #9  
Old July 23rd, 2005, 04:58 AM
__PPS__
Guest
 
Posts: n/a

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


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

  #10  
Old July 23rd, 2005, 04:58 AM
Vinu
Guest
 
Posts: n/a

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


g++ & unix

Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
how i can print the values of argv[] under unix environment.Plz help me Vinu answers 13 November 14th, 2005 10:19 PM