Не считывает файл с помощью 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;
}