It appears that you didn't declare your variable as a pointer to a string.
The following code seems to work fine.

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

  struct hostent *h;
  char *hostname[50];

  printf("enter name of host to resolve: ");
  scanf("%s", hostname);
  h = gethostbyname(hostname);
  if (h == NULL) {
    herror("gethostbyname");
    exit(1);
  }
  printf("IP adress: %s\n",inet_ntoa(*((struct in_addr *)h->h_addr)));
}

Later,

Anthony






"Torbj

ørn S. Kristoffersen" <[EMAIL PROTECTED]> on 07/12/98 02:04:48 PM

Please respond to "Torbjørn S. Kristoffersen" <[EMAIL PROTECTED]>

To:   [EMAIL PROTECTED]
cc:    (bcc: Anthony Simon/THP)
Subject:



I'm programming a program that should use a string which contains
a domain name (f.ex. foo.foocorp.com) and printf the IP address to
stdout using gethostbyname();

This example works nice:

   ...
   if((h=gethostbyname(argv[1])) == NULL)
   {
     herror("gethostbyname");
     exit(1);
   }

   printf("IP adress: %s\n",inet_ntoa(*((struct in_addr *)h->h_addr)));
   ...

But how can i replace argv with a string that has previously been
declared with

  char String[25];   ?
  and later use scanf or cin.

When I try replace argv with pString, the program ends up with a
Segmentation fault..
I ran strace on the program and it reported that the string contained a
newline (\n). (The newline is the error, right? correct me if i'm wrong)
How can i remove this newline? And replace it with a \0  or whatevers
necessary?


--
Torbjoern Kristoffersen <[EMAIL PROTECTED]>






Reply via email to