Главная->Інформатика та програмування->Содержание->Считывание нескольких строк

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 7) онлайн

Считывание нескольких строк

Мы смогли решить проблему считывания внутренних пробелов в строке, но как быть с несколькими строками? Оказывается, что метод cin.get() может иметь третий аргумент, который пригодится нам в этой ситуации. Этот аргумент опре- деляет символ, на котором метод завершает считывание строки. Установленным по умолчанию значением этого аргумента является символ новой строки ('\n'), но если вы вызовете метод с другим аргументом, то это значение заменится на введенный вами символ.

В нашем следующем примере, LINESIN, мы вызовем метод cin.get() с симво- лом доллара ('$') в качестве третьего аргумента:

// linesin.cpp // ввод нескольких строк #include <iostream> using namespace std;

const int MAX = 2000; // максимальная длина строки

char str [ MAX ]; // сама строка

///////////////////////////////////////////////////////////

int main ( ) {

cout << "\nВведите строку:\n"; cin.get ( str, MAX, '$' ); cout << "Вы ввели:\n" << str << endl; return 0;

}

Теперь вы можете напечатать столько строк для ввода, сколько хотите. Ме- тод будет принимать символы до тех пор, пока вы не введете завершающий символ (или до тех пор, пока введенные данные не превысят размер массива). Помните, что вам нужно будет нажать клавишу Enter после того, как вы напеча- таете символ '$'. Вот пример взаимодействия с программой:

Введите строку: Широка страна моя родная Много в ней лесов, полей и рек Я другой такой страны не знаю.

Где так вольно дышит человек. $

Вы ввели:

Широка страна моя родная Много в ней лесов, полей и рек Я другой такой с граны не знаю, Где так вольно дышит человек.

Мы заканчивали каждую строку нажатием клавиши Enter, но программа про- должала принимать от нас ввод до тех пор, пока мы не ввели символ '$'.

 

21