Заставить scanf использовать новую строку - PullRequest
1 голос
/ 18 января 2011

У меня есть программа, которая читает данные из stdin.Эти данные представляют собой последовательность байтов.Если в нем есть байт, описывающий новую строку (в шестнадцатеричной форме: 0x0A), scanf прекращает чтение.

Можно ли замаскировать этот байт, чтобы scanf продолжал читать всю последовательность?

Важно, чтобы память, записанная scanf, содержала байт новой строки.

Ответы [ 2 ]

3 голосов
/ 18 января 2011

Не видя ваш код, я не могу дать точную рекомендацию.Но если ваша цель - принять ввод "как есть", я рекомендую read() в качестве альтернативы scanf().Посмотрите этот вопрос для кого-то, у кого была совершенно противоположная проблема.

0 голосов
/ 18 января 2011
scanf("%[^`]s", str);

Вы можете использовать что-то вроде этого. `\ n теперь будет завершающей последовательностью символов.
Вы можете заменить `, используя любой другой символ или даже группу из них, и ввод закончится этим символом, за которым следует \ n .

...