LINUX.ORG.RU

вопрос по scanf


0

0

Наверное ламерский вопрос, но как сделать так, чтоб при scanf("%s",str) если пользователь сразу нажал Enter, то возвращалась пустая строка. А то у меня он ожидает хотя бы один символ. Если сразу нажать Enter, то курсор ввода переместится на одну строчку ниже и будет дальше ожидать ввода строки.

Вопрос снят. Использую fgets(...,...,stdin). Выглядит по извращенски, но работает.

pathfinder ★★★★
() автор топика
Ответ на: комментарий от pathfinder

жесть.

gets() считывает строку из stdin и записывает ее в буфер, на который указывает s, пока не встретится символ новой строки или EOF, которые заменяются значением '\0'. Проверка на переполнение буфера не производится.

оно есть по man fgets. как можно его не увидеть - загадка!

Больше быдлокодеров, корявых и глючных!

zh
()
Ответ на: комментарий от zh

зачем ему gets если gets не производит проверку на переполнение?

dilmah ★★★★★
()
Ответ на: комментарий от zh

> Больше быдлокодеров, корявых и глючных!

ты решил представится? gets неюзабельно из-за возможности переполнения буфера

Unknown
()
Ответ на: комментарий от zh

> Больше быдлокодеров, корявых и глючных!

Быдлокодеры -- это те, кто использует gets(3), который вообще никак не проверяет переполнение.

kemm
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.