Не считывает файл с помощью ifstream на с++

Нужно прочесть то, что написано в файле, и вывести его содержимое в консоль.
Код не видит файл.

#include <iostream>
#include <fstream>
#include <string>     
using namespace std;

int main()
{
    setlocale(LC_ALL, "rus");

    string line;

    ifstream in("newchisla.txt"); 
    if (in.is_open())
    {
        while (getline(in, line))
        {
            cout << line << endl;
        }
    }
    in.close();     
}

Ответы (1 шт):

Автор решения: NunOfIt

Скорее всего у вас приложение запускается из другой дериктории, не той в которой лежит newchisla.txt из-за этого и возникает ошибка. Попробуйте указать полный путь к файлу, например, C:\Documents\Projects\prj1\newchisla.txt.

Либо прогоните вот этот код, посмотрите какая у вас текущая директория и какие ошибки выдаёт ifstream.

#include <string>
#include <fstream>
#include <iostream>
#include <unistd.h>

int main() {
    setlocale(LC_ALL, "rus");

    std::string line;
    std::ifstream in;
    
    auto except = in.exceptions() | std::ios::failbit;
    in.exceptions(except);

    try { in.open("newchisla.txt"); }
    catch (std::ios_base::failure& e) {
        char dir_path[64];
        getwd(&dir_path[0]);

        std::cerr << e.what() << '\n';
        std::cout << "Current directory: " << dir_path << '\n';
        return 0;
    }

    if (in.is_open()) {
        while (getline(in, line)) {
            std::cout << line << '\n';
        }
    }
    in.close();
    return 0;
}
→ Ссылка