Мне нужно одновременно писать в кучу файлов, поэтому я решил использовать map
.
map<string, ofstream> MyFileMap;
Я беру vector
, который состоит, скажем, из "a" "b" "c"
, и попробуйте открыть мои файлы с помощью:
for (vector<string>::iterator it = FileInd.begin(); iter != FileInd.end(); ++it){
...
MyFileMap[*it].open("/myhomefolder/"+(*it)+".");
}
Я получаю сообщение об ошибке
request for member 'open' in ..... , which is of non-class type 'std::ofstream*'
Я пытался переключить to
map<string, ofstream*> MyFileMap;
Но это тоже не сработало.
Кто-нибудь может помочь?
Спасибо.
Уточнение:
Я пробовал оба
map
map
с обоими
.open
-> open
ни один из 4 вариантов не работает.
Решение (предложенное в коде Роба ниже):
В основном, я забыл «новый», у меня работает следующее:
map<string, ofstream*> MyFileMap;
MyFileMap[*it] = new ofstream("/myhomefolder/"+(*it)+".");