вот код обижая с помощью Ubuntufgets Сегментация ошибки при чтении ввода от пользователя
char *name;
int main(void)
{
fgets(name, sizeof(name), stdin);
}
void HUD()
{
printf("%s ", name);
}
Вот моя проблема. Я начал с scanf («% s», &) и получал мусор в конце строки. За последние 2 часа были прочитаны документы на scanf и fgets, потому что, очевидно, scanf не следует использовать, когда вы не знаете размер требуемого массива (и поскольку пользовательский ввод может отличаться по размеру), я решил попробуйте использовать fgets. Я также попытался установить фиксированное значение как по имени символа [100]; и fgets (name, 100, stdin)
Теперь я получаю ошибку сегментации, и, прочитав каждый результат, который я нашел на первых двух страницах google, мой синтаксис выглядит корректным, и я ничего не нашел на cboard или здесь, чтобы исправить мою проблему.
Любые идеи?
Я уже сделал это. Нет успеха. Все еще возникает ошибка сегментации. – nanthil
Вы можете использовать 'scanf()' просто отлично, когда вы не знаете длину ввода, если вы указываете ширину поля, которая предотвращает переполнение массива. 'fgets()' имеет точно такое же ограничение; это просто более подробно о том, как заставить вас рассказать о том, сколько символов он должен читать. –
Обратите внимание, однако, что 'scanf()' и 'fgets()' отличаются от того, как определить, когда прекращать чтение. –