Считать ошибку компилятора:
no matching function for call to 'std::basic_ifstream >::basic_ifstream(std::string*)
No matching function for call to:
Не удается найти функцию, которую вы пытаетесь вызвать
std::basic_ifstream >::
- функция-член ifstream
:basic_ifstream(std::string*)
- конструктор, который принимает указатель строки в качестве аргумента
Итак, вы пытаетесь создать ifstream, передавая строковый указатель на его конструктор. И он не может найти конструктор, который принимает такой аргумент.
Поскольку вы не передаете указатель строки в приведенном выше коде, отправленный вами код должен отличаться от вашего фактического кода. Всегда копируйте / вставляйте, когда спрашиваете о коде. Опечатки делают невозможным выяснить проблему. В любом случае, насколько я помню, конструктор не принимает строковый аргумент, а только const char *. Таким образом, filename.c_str () должен сделать трюк
Кроме того, вы можете сделать это намного проще:
ifstream myfile (filename);
std::copy(std::istream_itrator<std::string>(myfile),
std::istream_itrator<std::string>(),
std::ostream_iterator<std::string>(std::cout));
}