// Я пытаюсь прочитать файл внутри функции, вызвав функцию main и передав имя файла в качестве аргумента. Это дает ошибку при открытии файла. Но то же самое отлично работает, когда я передаю файл имени файла напрямую («имя_файла»). Почему это так? Заранее спасибо.Передача абсолютного имени файла для чтения файла в C++
#include<string>
#include<fstream>
void parse(string file_name)
{
ifstream file("file_name"); //opens file
if (!file)
{
cout<<"Cannot open file\n";
return;
}
cout<<"File is opened\n";
file.close(); //closes file
}
int main()
{
parse("abc.txt"); //calls the parse function
return;
}
'ifstream файл («имя_файла»);' означает открыть файл с именем '«имя_файла»', а не содержимое переменной 'file_name'. Если вы получаете сообщение об ошибке «std :: string» и не используете C++ 11, вам может понадобиться использовать 'file_name.c_str()'. Просто угадайте, хотя, поскольку вы не опубликовали фактическую ошибку в своем вопросе. –
Спасибо Ninja. Что может быть альтернативой? что, если я хочу прочитать все файлы, присутствующие в папке? –