Функция StringCchGets


Функция StringCchGets - заменяет функцию gets. Размер, в символах, целевого буфера назначается в функцию для того, чтобы гарантировать, что StringCchGets не запишет помимо конца этого буфера. Она извлекает одну строку текста из stdin, символом перевода строки ('\n') заканчивает вводимые данные. Строка текста копируется в целевой буфер, а возврат каретки заменяется нулевым символом.

Обратите внимание! на то, что эта функция может использоваться только встроенной.

Синтаксис

HRESULT StringCchGets(      

    LPTSTR pszDest,
    size_t cchDest
);

Параметры

pszDest

[out] Указатель на буфер, который получает скопированные символы.

cchDest

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

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

Обратите внимание! на то, что эта функция возвращает HRESULT в противоположность функции gets, которая возвращает указатель. Настоятельно рекомендуется использовать макроопределения SUCCEEDED и FAILED, чтобы проверить возвращаемое значение этой функцией.


Значение

Предназначение

S_OK Символы были прочитаны из stdin, скопированы в буфер pszDest, а буфер был завершен символом конца строки ('\0').
STRSAFE_E_END_OF_FILE Указывает условие метки конца файла или ошибки. Используйте функции Си feof или ferror, чтобы определить, что произошло.
STRSAFE_E_INVALID_PARAMETER Значение в cchDest больше, чем максимально возможное значение.
STRSAFE_E_INSUFFICIENT_BUFFER Значение в cchDest 1 или меньше.

Замечания

Функция StringCchGets предусматривает дополнительную обработку для правильной работы буфера в Вашем коде. Недостаточная обработка буфера влечет за собой многие проблемы обеспечения безопасности, которые вызывают переполнение буфера. StringCchGets всегда завершает символом конца строки ('\0') целевой буфер ненулевой длины.

Функция StringCchGets может быть использована в её общей форме или в специальной, такой как StringCchGetsA (для строк ANSI) или StringCchGetsW (для строк Unicode). Форма использования определяется Вашими данными.

Тип строковых данных

Строковый литерал

Функция

char "string" StringCchGetsA
TCHAR TEXT("string") StringCchGets
WCHAR L"string" StringCchGetsW

Функция StringCchGets и его ANSI и Unicode варианты - заменяют эти функции:

Функция StringCchGets не заменяет функцию fgets. Эта функция не заменяет символы перевода строки символом завершающего нуля.

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

Смотри также

Обзор Строки, Функции, используемые строкамиStringCbGets, StringCchGetsEx

 

Размещение и совместимость StringCchGets

К Windows XP Да
л Windows 2000 Professional Да
и Windows NT Workstation Да версии 3.1
е Windows Me Да
н Windows 98 Да
т Windows 95 Да
 
С Windows Server 2003 Да
е Windows 2000 Server Да
р Windows NT Server Да версии 3.1
в    
е    
р    
Используемая библиотека -
Используемая DLL -
Заголовочный файл  
- объявлено в strsafe.h
- включено в -
Unicode Реализуются как версии Unicode и ANSI.
Замечания по платформе Не имеется

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz