Не читает файл, но ошибок не выдает

Делал лабораторную работу в университет и столкнулся с такой проблемой. Не открывается файл для считывания(он лежит в папке проекта), в файле просто числа от 1 до 10. Вроде написано все верно и компилятор ошибок не выдает, но проверка в коде всегда выводит error и дальше дело не идет соответственно. Помогите, пожалуйста разобраться в чем дело)

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    int m;
    cout << "Write number: "; cin >> m;
    int summ = 0;
    int numbers;
    ifstream f;
    f.open("nums.txt");
    if(!f.is_open()){
        cout << "error opening" << endl;
        return 0;
    }
    while(f >> numbers){
        if(numbers < m){
            summ += numbers;
        }
    }
    f.close();
cout << "Summ = " << summ;
}

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

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

Странная у вас программа, но суть не в этом, вы не указали, в какой IDE вы работаете.

Скорее всего VS вам нужно зайти и посмотреть куда, собирается ваш *.exe файла, т.к. именно от него и берется путь(и скорее всего у вас сборка идет в папку отдельную поэтому он и не видит).

Решение:

  1. Самое простое найдите путь сборки во флагах компилятора и поменяйте
  2. Переместите сам файл, куда собирается *.exe
  3. Просто соберите сами из консоли(у вас маленькая программа так что это очень просто)

Вот пример(у меня VS code, но это не важно, делайте просто по аналогии):

Вот ваша программа и файл .txt: введите сюда описание изображения

Далее заходите в консоль и переходите в папку проекта: введите сюда описание изображения

Затем просто собираете компилятором exe файл и запускаете его(я не знаю какой у вас clang, gcc и т.д.) : введите сюда описание изображения

clang++ .\main.cpp -o executable; .\executable.exe;

Если у вас cmd то :

clang++ .\main.cpp -o executable && .\executable.exe

Вывод :

введите сюда описание изображения

Ну вот и все, тоже самое будет если вы пути поменяете.

→ Ссылка