Нечетная строковая ошибка в C - PullRequest
4 голосов
/ 19 мая 2011

Я пишу некоторый код, который использует функцию gethostbyname (). Эта функция требует, чтобы я передал ей строку хоста, для которого я пытаюсь найти хост. Сейчас моя строка объявлена ​​в виде массива символов с нулевым байтом в конце, так что она считается строкой.

Когда я выполняю printf следующим образом: printf("\n%s\n",hostName); код будет напечатан правильно и скажет что-то вроде: facebook.com

Однако, когда я пытаюсь напечатать строку следующим образом: printf("\n%sX\n",hostName); вывод будет по какой-то причине Xacebook.com.

Кто-нибудь знает, почему X перезаписывает первый символ моей строки? Я думаю, что он должен печататься как «facebook.comX».

1 Ответ

4 голосов
/ 19 мая 2011

У вас есть \ r в конце строки.Это перемещает курсор назад к началу строки.Я предполагаю, что вы читаете имя хоста из файла?

...