Главная->Інформатика та програмування->Содержание->Ввод/вывод для объектов класса string

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

Ввод/вывод для объектов класса string

Ввод и вывод осуществляются путем, схожим с применяемым для строкового типа. Операции << и >> перегружены для использования с объектами класса string, метод getline() принимает ввод, который может содержать пробелы или не- сколько строк. В примере SSTRIO показано, как это выглядит.

// sstrio.cpp

// ввод/вывод для класса string

#include <iostream>

#include <string>

using namespace std;

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

int main ( )

{

  string full_name, nickname, address;

  string greeting ( "Здравствуйте, " );

 

  cout << "Введите Ваше имя: ";

  getline ( cin, full_name );

  cout << "Ваше имя: " << full_name << endl;

 

  cout << "Введите Ваш псевдоним: ";

  cin >> nickname;

 

  greeting += nickname;

  cout << greeting << endl;

 

  cout << "Введите Ваш адрес в несколько строк\n";

  cout << "Окончание ввода символ '$'\n";

  getline ( cin, address, '$' );

  cout << "Ваш адрес: " << address << endl;

 

  return 0;

}

Программа считывает имя пользователя, которое, возможно, содержит внут- ренние пробелы, используя метод getline(). Эта функция похожа на метод get(), используемый для строкового типа, но это не метод класса. Ее первым аргумен- том является потоковый объект, из которого будет приниматься ввод (здесь это cin), а второй аргумент — это объект класса string, куда будет помещен текст. Переменная full_name будет затем выведена, используя cout и операцию <<.

Затем программа считывает псевдоним пользователя, который предполо- жительно состоит из одного слова, используя cin и операцию >>. Наконец, программа использует вариант функции getline() с тремя аргументами для счи- тывания адреса пользователя, в котором может быть несколько строк. Третий аргумент функции определяет символ, который используется для завершения ввода. В программе мы использовали символ '$', который пользователь должен ввести, как последний символ строки перед тем, как нажать клавишу Enter. Если функция не имеет третьего аргумента, то предполагается, что завершающим символом строки будет '\n', представляющий клавишу Enter. Приведем пример взаимодействия с программой SSTRIO:

Введите Ваше имя: Джек Восьмеркин

Ваше имя: Джек Восьмеркин

Введите Ваш псевдоним: Американец

Здравствуйте. Американец

Введите Ваш адрес в несколько строк

Окончание ввода символ '$'

123456.

г. Урюпинск. ул. Канавная!

$

Ваш адрес:

 

29