J'essaie d'utiliser 'gethostbyname'. Si je code directement un nom d'hôte dans l'appel de fonction, cela fonctionne très bien. Cependant, j'essaye de passer l'entrée d'utilisateur dans cette fonction. Je crois que mon problème peut parce que le tableau que je passe à la fonction a beaucoup d'espaces de fin.Comment faire un tableau qui correspond à la chaîne de stdin?
void connectHost(char *hostname)
{
int n;
//This works
//n = gethostbyname("irc.ubuntu.com");
//This always returns NULL
n = gethostbyname(hostname);
if(n == NULL)
{
printf("Host Not Found.");
}
}
int main()
{
char hostname[256];
fgets(hostname,255,stdin);
connectHost(hostname);
}
Alors, quelle est la meilleure façon de simplement passer le nom d'hôte à la fonction? Ne devrais-je pas utiliser des fgets?
Merci!
Notez que 'fgets' ne contient pas * toujours * un retour chariot (par exemple, si la ligne a été tronquée ou si la dernière ligne d'un fichier ne se termine pas en une). – jamesdlin
@jamesdlin: merci. J'ai fourni une réponse simple qui devrait correspondre à la nécessité d'OP. OP prend une entrée de 'stdin' et a un problème de retour à la ligne. – Donotalo
L'utilisation de 'stdin' rend très probable qu'il y aura un retour à la ligne final, mais il ne le garantit pas (vous pouvez appuyer sur la combinaison de touches EOF du shell). – jamesdlin