Не читает файл, но ошибок не выдает
Делал лабораторную работу в университет и столкнулся с такой проблемой. Не открывается файл для считывания(он лежит в папке проекта), в файле просто числа от 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 шт):
Странная у вас программа, но суть не в этом, вы не указали, в какой IDE вы работаете.
Скорее всего VS вам нужно зайти и посмотреть куда, собирается ваш *.exe файла, т.к. именно от него и берется путь(и скорее всего у вас сборка идет в папку отдельную поэтому он и не видит).
Решение:
- Самое простое найдите путь сборки во флагах компилятора и поменяйте
- Переместите сам файл, куда собирается *.exe
- Просто соберите сами из консоли(у вас маленькая программа так что это очень просто)
Вот пример(у меня VS code, но это не важно, делайте просто по аналогии):
Вот ваша программа и файл .txt:
Далее заходите в консоль и переходите в папку проекта:
Затем просто собираете компилятором exe файл и запускаете его(я не знаю какой у вас clang, gcc и т.д.) :
clang++ .\main.cpp -o executable; .\executable.exe;
Если у вас cmd то :
clang++ .\main.cpp -o executable && .\executable.exe
Вывод :
Ну вот и все, тоже самое будет если вы пути поменяете.