Разыменование shared_ptr очень похоже на разыменование необработанного указателя:
#include <vector>
#include <fstream>
#include <memory>
int main()
{
std::vector<std::shared_ptr<std::ifstream>> files;
for (char i = '1'; i < '4'; i++) {
std::string file = std::string(1, i) + ".txt";
files.emplace_back(std::make_shared<std::ifstream>(file));
}
for (char i = '1'; i < '4'; i++) {
std::shared_ptr<std::ifstream> f = files.at(i - '0' - 1);
std::string line;
getline(*f, line); //What should I do here? This.
// do stuff to line
}
}
Я исправил код так, чтобы он компилировался, но не рассмотрел проблемы стиля, поскольку они не имеют отношения к вопросу.
Примечание. Сообществу будет проще, если вы разместите полную минимальную программу, а не фрагмент кода.