Каковы классы "строка", "поток" и "строка" в С++?

Я хочу знать, какая разница между строкой и потоком в С++ и какой stringstream?

4 ответа

  • istream и ostream: интерфейсы для потоковой передачи данных (файлы, сокеты и т.д.).
  • istringstream: a istream, который обертывает строку и предлагает ее содержимое
  • ostringstream: a ostream, который сохраняет содержимое, записанное в него в виде строки

Пример:

istringstream datastream("1 2 3");
int val;
datastream >> val;
cout << val << endl; // prints 1
datastream >> val;
cout << val << endl; // prints 2
datastream >> val;
cout << val << endl; // prints 3
ostringstream outstream;
outstream << 1 << "+" << 2 << "=" << 3;
cout << outstream.str() << endl; // prints "1+2=3"


Очень неформально: строка представляет собой набор символов, поток - это инструмент для манипулирования движущимися данными. Строковый поток - это класс С++, который позволяет использовать строку в качестве источника и назначения данных для потока.

Также... google - ваш друг.


Я предполагаю, что строковый поток похож на iostream, но вместо того, чтобы писать или читать из файла, вы пишете или читаете из строки.


В C и/или Unix основной метафорой был файл. Стандартные, стандартные, сетевые сокеты были представлены с использованием дескрипторов файлов. Таким образом, вы можете использовать fprintf() для записи в эти "файлы", не зная, что действительно находится внизу.

Как более безопасная и более холодная альтернатива, С++ представил iostream в качестве базовой метафоры, которая почти встроена в язык, используя << оператор. Опять же, файлы, строки и (с библиотекой) сети могут быть доступны с использованием потоков, не зная, что это такое.

licensed under cc by-sa 3.0 with attribution.