Как проверить длину новой строки при использовании u_fgets в ICU4C ustdio.h? - PullRequest
0 голосов
/ 22 октября 2019

В ICU4C

UChar * u_fgets(UChar *s, int32_t n, UFILE *f)

будет читать одну строку из f в буфер s, размер которого n.

Но как я могу узнать, что эта одна строкадлина?

Что будет, если n недостаточно для этой строки?

1 Ответ

1 голос
/ 22 октября 2019

Но как я могу узнать длину этой строки?

Если u_fgets() работает аналогично стандартному fgets(), то будет поставлено '\ 0после последнего прочитанного символаЗатем вы можете получить длину, вызвав strlen() или ее эквивалентную версию для вашей системы.

Что произойдет, если n недостаточно для этой одной строки?

Если u_fgets() работает аналогично стандартному fgets(), он прекратит заполнять символы в буфере s, так что \ 0 попадет в последнюю ячейку. Это будет n й символ в s[n - 1]. Не сохраненные символы останутся во входном потоке f.


Однако, пожалуйста, прочитайте документацию! Это всегда ваша первая остановка.

...