Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

cgets

 
 Фукция             Cчитывает строку с консоли.
 
 
 
 Синтаксис          #include<conio.h>
 
                    char *cgets(char *str);
 
 
 
 Файл, содержащий   conio.h
 
 прототип
 
 
 
 Описание           cgets считывает символьную строку с консоли и
 
                    сохраняет ее (и длину строки) в буфере, указываемом
 
                    параметром str.
 
 
 
                    cgets считывает   символы   до  тех  пор,  пока  не
 
                    встретится      комбинация      CR/LF      (возврат
 
                    каретки/перевод строки),  или пока не будет считано
 
                    максимально возможное число  символов.  Если  cgets
 
                    считала  комбинацию  CR/LF,  она  заменяет их на \0
 
                    (нулевой ограничитель  строки)   перед   тем,   как
 
                    сохранить строку.
 
 
 
                    До вызова   cgets   аргумент   str[0]  должен  быть
 
                    установлен  на   максимальную   длину   считываемой
 
                    строки.  При  возврате  str[1]  содержит количество
 
                    считанных символов.  Символы  хранятся,  начиная  с
 
                    str[2],  и  заканчиваются  нулевым символом.  Итак,
 
                    аргумент str должен иметь размер,  по крайней мере,
 
                    str[0] плюс 2 байта.
 
 
 
 Возвращаемое       При успешном завершении cgets возвращает указатель
 
 значение           на str[2].
 
 
 
 Переносимость      Эта функция поддерживается только на компьютерах
 
                    IBM PC   или   совместимых   с   ними.  Функция  не
 
                    совместима с Windows.
 
 
 
 Смотрите также     cputs, fgets, getch, getche, gets.
 
 
 
 Пример:
 
 
 
 #include <stdio.h>
 
 #include <conio.h>
 
 
 
 main()
 
 {
 
     char buffer[83];
 
     char *p;
 
     /* место под 80 символов и нулевой завершающий символ   */
 
     buffer[0] = 81;
 
     p = cgets(buffer);
 
     printf("\ncgets считала %d символов: \"%s\"\n",buffer[1], p);
 
     printf("Возвращается указатель %p, buffer[2] на %p\n",p,&buffer);
 
     /* место под 5 символов и завершающий 0 */
 
     buffer[0] = 6;
 
     printf("Введите несколько символов\n");
 
     p = cgets(buffer);
 
     printf("\ncgets считала %d символов: \"%s\"\n,buffer[1], p);
 
     printf("Возвращается указатель %p, buffer[2] на %p\n",p,&buffer);
 
     return 0;
 
 }

<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS