Джесс Либерти - Освой самостоятельно С++ за 21 день.

Здесь есть возможность читать онлайн «Джесс Либерти - Освой самостоятельно С++ за 21 день.» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Освой самостоятельно С++ за 21 день.: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Освой самостоятельно С++ за 21 день.»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В книге широко представлены возможности новейшей версии программного продукта Microsoft Visual C++. Подробно описаны средства и подходы программирования современных профессиональных приложений. Материалы книги дополнены многочисленными демонстрационными программами, в процессе разработки которых максимально используются возможности программных инструментов Microsoft Visual Studio. Особое внимание уделено новинкам версии 6.0 и новейшим технологиям объектно-ориентированного программирования, включая использование библиотеки MFC и шаблонов классов, а также создание связанных списков. Отдельное занятие посвящено вопросам объектно-ориентированного анализа и проектирования приложений. Подробно рассмотрены все средства и подходы конструирования собственных пользовательских классов.
Книга рассчитана на широкий круг читателей, интересующихся современными проблемами программирования.

Освой самостоятельно С++ за 21 день. — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Освой самостоятельно С++ за 21 день.», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Реализация этого метода ввода показана в листинге 16.6.

Листинг 16.6. Использование функции get() для заполнения массива символов

1: // Листинг 16.6. Использование get()c массивом символов

2: #include

3:

4: int main()

5: {

6: char stringOne[256];

7: char stringTwo[256];

8:

9: cout << "Enter string one: ";

10: cin.get(stringOne,256);

11: cout << "stringOne: " << stringOne << endl;

12:

13: cout << "Enter string two: ";

14: cin >> stringTwo;

15: cout << "StringTwo: " << stringTwo << endl;

16: return 0;

17: }

Результат:

Enter string one: Now is the time

stringOne: Now is the time

Enter string two: For all good

StringTwo: For

Анализ:В строках 6 и 7 создаются два массива символов. Строка 9 предлагает пользователю ввести строку, после чего в строке 10 вызывается функция

cin.get() с тремя параметрами. Первый параметр ссылается на заполняемый массив символов, второй задает максимально возможное количество символов в строке с учетом нулевого концевого символа ('\0'). Третий параметр не установлен, и используется заданный по умолчанию символ разрыва строки.

Пользователь вводит строку Now is the time. Вся строка вместе с концевым нулевым символом помещается в массив stringOne.

Вторую строку пользователю предлагается ввести в строке 13, однако в этом случае уже используется оператор ввода. Поскольку он считывает строку до первого пробела, во втором случае в буфер заносится строка Все, что, конечно же, неправильно.

Один из способов решения этой проблемы заключается в использовании функции getline(), как показано в листинге 16.7.

Листинг 1B.7. Использование функции getline()

1: // Листинг 16.7. Использование getline()

2: #include

3:

4: int main()

5: {

6: char stringOne[256];

7: char stringTwo[256];

8: char stringThree[256];

9:

10: cout << "Enter string one: ";

11: cin.getline(stringOne,256);

12: cout << "stringOne: " << stringOne << endl;

13:

14: cout << "Enter string two: ";

15: cin >> stringTwo;

16: cout << "stringTwo: " << stringTwo << endl;

17:

18: cout << "Enter string three: ";

19: cin.getline(stringThree,256);

20: cout << "stringThree: " << stringThree << endl;

21: return 0;

22: }

Результат:

Enter string one: one two three

stringOne: one two three

Enter string two: four five six

stringTwo: four

Enter string three: stringThree: five six

Анализ:Этот пример требует детального исследования, поскольку возможны некоторые сюрпризы.

В строках 6—8 объявляются массивы символов. В строке 10 пользователю предлагается ввести строку текста, которая считывается функцией getline(). Аналогично функции get(), параметры getline() устанавливают буфер ввода и максимальное число символов. Однако, в отличие от get(), функция getline() считывает и удаляет из буфера символ разрыва строки. Как вы помните, функция get() воспринимает символ разрыва строк как разделитель и оставляет его в буфере ввода.

В строке 14 пользователю вновь предлагается ввести строку, которая теперь уже считывается оператором ввода. В нашем примере вводится строка four five six, после чего первое слово four присваивается переменной stringTwo. После отображения предложения Enter string three: снова вызывается функция getline(). Так как часть строки five six все еще находится в буфере ввода, она сразу считывается до символа новой строки. Функция getline() завершает свою работу, и строкой 20 выводится значение переменной stringThree.

В результате третья строка не вводится в программу, поскольку функция getline() возвращает часть строки, оставшуюся в буфере после операции ввода в строке 15, так как оператор >> считывает строку только до первого пробела и вставляет найденное слово в массив символов.

Как вы помните, можно использовать несколько вариантов перегруженной функ- ции-члена get(). В первом варианте она не принимает никаких параметров и возвращает значение полученного символа. Во втором принимается ссылка на односимвольную переменную и возвращается объект istream. В третьей, последней версии в функцию get() устанавливаются массив символов, количество считываемых символов и символ разделения (которым по умолчанию является разрыв строки). Эта версия функции get () возвращает символы в массив либо до тех пор, пока не будет введено максимально возможное количество символов, либо до первого символа разрыва строки. Если функция get() встречает символ разрыва строки, ввод прерывается, а символ разрыва строки остается в буфере ввода.

Функция-член getline() также принимает три параметра: буфер ввода, число символов в строке с учетом концевого нулевого символа и символ разделения. Функция getline() действует аналогично описанной выше функции get(), но отличается от последней только тем, что не оставляет в буфере символ разрыва строки.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Освой самостоятельно С++ за 21 день.»

Представляем Вашему вниманию похожие книги на «Освой самостоятельно С++ за 21 день.» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Освой самостоятельно С++ за 21 день.»

Обсуждение, отзывы о книге «Освой самостоятельно С++ за 21 день.» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x