Поделиться через


Функция StringCchGetsA (strsafe.h)

Возвращает одну строку текста из stdin, вплоть до и включая символ новой строки ("\n"). Строка текста копируется в целевой буфер, а новый символ заменяется пустым символом. Размер целевого буфера предоставляется функции, чтобы убедиться, что она не записывает в конец этого буфера.

примечание Эту функцию можно использовать только встраиваемой.
 
StringCchGets является заменой следующих функций: StringCchGets не является заменой для fgets, что не заменяет новые символы строк конечным символом NULL.

Синтаксис

STRSAFEAPI StringCchGetsA(
  [out] STRSAFE_LPSTR pszDest,
  [in]  size_t        cchDest
);

Параметры

[out] pszDest

Тип: LPTSTR

Буфер назначения, который получает скопированные символы.

[in] cchDest

Тип: size_t

Размер целевого буфера в символах. Это значение должно быть не менее 2 для успешной работы функции. Максимально допустимое число символов, включая завершающийся символ NULL, STRSAFE_MAX_CCH. Если cchDest слишком мал для хранения полной строки текста, данные усечены.

Возвращаемое значение

Тип: HRESULT

Эта функция может возвращать одно из следующих значений. Настоятельно рекомендуется использовать макросы SUCCEEDED и FAILED макросы для проверки возвращаемого значения этой функции.

Возвращаемый код Описание
S_OK
Символы считывались из stdin, копировались в буфер в pszDest, и буфер был завершен значением NULL.
STRSAFE_E_END_OF_FILE
Указывает ошибку или условие завершения файла. Используйте feof или феррор, чтобы определить, какой из них произошел.
STRSAFE_E_INVALID_PARAMETER
Значение в cchDest больше максимального допустимого значения.
STRSAFE_E_INSUFFICIENT_BUFFER
Значение в cchDest равно 1 или меньше.
 

Обратите внимание, что эта функция возвращает значение HRESULT, в отличие от функций, которые он заменяет.

Замечания

StringCchGets обеспечивает дополнительную обработку буферов в коде. Низкая обработка буфера связана со многими проблемами безопасности, включающими переполнение буфера. StringCchGets всегда завершает буфер назначения, отличный от нуля.

Значение pszDest не должно быть NULL. Если требуется обработка значений указателя строки null, см. StringCchGetsEx.

StringCchGets можно использовать в универсальной форме или в более конкретных формах. Тип данных строки определяет форму этой функции, как показано в следующей таблице.

Тип данных строки Строковый литерал Функция
char "string" StringCchGetsA
TCHAR TEXT("string") StringCchGets
WCHAR L"string" StringCchGetsW
 

Заметка

Заголовок strsafe.h определяет StringCchGets как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP с пакетом обновления 2 (SP2) [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2003 с пакетом обновления 1 (SP1) [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка strsafe.h

См. также

Справочник

StringCbGets

StringCchGetsEx