Я хочу, чтобы поток std::string
но я хочу, чтобы сделать это без первых двух символов или двух последних символов.
Например:
string foo{"bu blah blah blee le"};
cout << foo.substr(2) << endl << foo.substr(0, foo.size() - 2) << endl;
Существуют ли для этого инструменты iomanip
? или я должен просто продолжить и построить временную string
s?
Вы можете использовать cout.write
:
cout.write(foo.c_str() + 2, foo.size() - 4);
который также возвращает поток, так что вы можете сделать:
cout << "First two: ";
cout.write(foo.c_str(), 2) << "\nAll but first two: ";
cout.write(foo.c_str() + 2, foo.size() - 2) << '\n';