Я хочу знать, какая разница между строкой и потоком в С++ и какой stringstream?
Каковы классы "строка", "поток" и "строка" в С++?
Ответ 1
-
istream
иostream
: интерфейсы для потоковой передачи данных (файлы, сокеты и т.д.). -
istringstream
: aistream
, который обертывает строку и предлагает ее содержимое -
ostringstream
: aostream
, который сохраняет содержимое, записанное в него в виде строки
Пример:
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"
Ответ 2
Очень неформально: строка представляет собой набор символов, поток - это инструмент для манипулирования движущимися данными. Строковый поток - это класс С++, который позволяет использовать строку в качестве источника и назначения данных для потока.
Также... google - ваш друг.
Ответ 3
Я предполагаю, что строковый поток похож на iostream, но вместо того, чтобы писать или читать из файла, вы пишете или читаете из строки.
Ответ 4
В C и/или Unix основной метафорой был файл. Стандартные, стандартные, сетевые сокеты были представлены с использованием дескрипторов файлов. Таким образом, вы можете использовать fprintf()
для записи в эти "файлы", не зная, что действительно находится внизу.
Как более безопасная и более холодная альтернатива, С++ представил iostream в качестве базовой метафоры, которая почти встроена в язык, используя <<
оператор. Опять же, файлы, строки и (с библиотекой) сети могут быть доступны с использованием потоков, не зная, что это такое.