Any help on this appreciated.

This is a winsock program designed to prompt the user to enter a domain name.
The program is then supposed to return to the user a resolved ip address of that domain name. The user should also be able to enter an IP address and receive back a domain name.

While the program prompts the user to enter the domain name, all that is ever returned is error#:0

Can anyone shed light on why??
See code

HTML Code:
// Declare and initialize variables
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "ws2_32.lib")
#include <iostream>

int main(int argc, char **argv)
	hostent* remoteHost;
		char* host_name;	
		unsigned int addr;
		//Initialize WINSOCK 2
		WSADATA wsaData; //structure that holds information about current wsock version.
		if(WSAStartup(MAKEWORD(2,2), &wsaData) != 0) //start wsock version 2.2. Function returns
		//0 if successful, otherwise, there was an error that needs to be reported.
		std::cout << "WSAStartup failed: " << WSAGetLastError(); //report the error if there is one
		return 1; //exit the program. 
		// User inputs name of host
		printf("Input name of host: ");
		// Allocate 64 byte char string for host name
		host_name = (char*) malloc(sizeof(char)*64);
		fgets(host_name, 64, stdin);
		// If the user input is an alpha name for the host, use gethostbyname()
		// If not, get host by addr (assume IPv4)
		if (isalpha(host_name[0])) {   /* host address is a name */
		// if hostname terminated with newline '\n', remove and zero-terminate 
			if (host_name[strlen(host_name)-1] == '\n') 
			host_name[strlen(host_name)-1] = '\0';
			remoteHost = gethostbyname(host_name);
			else  { 
			addr = inet_addr(host_name);
			remoteHost = gethostbyaddr((char *)&addr, 4, AF_INET);

			if (WSAGetLastError() != 0) {
				if (WSAGetLastError() == 11001)
				printf("Host not found...\nExiting.\n");
			printf("error#:%ld\n", WSAGetLastError());