list — C ++ код не находит файл

Я пытаюсь создать программу, которая будет объединять (добавить два списка целых чисел вместе)
каждый список хранится в виде текстового файла. Я хочу, чтобы программа C ++ открыла list1.txt и list2.txt

Я не могу заставить его работать, хотя. Я положил два списка целых чисел имена list1 и list2 соответственно, однако я получаю вывод не могу найти list1.

#include <iostream>
#include <fstream>
#include <ostream>

using namespace std;

int main()
{
ifstream findlist1("list1.txt", ios::in | ios::binary);
if(!findlist1)
{
cout << "Cannot find list 1.\n";
return 1;
}
ifstream findlist2("list2.txt", ios::in | ios::binary);
if(!findlist2)
{
cout << "Cannot find list 2.\n";
return 1;
}
ofstream out("list3out.txt", ios::out | ios::binary);

if(!out)
{
cout << "Unable to output file ";
return 1;
}

out << in1.rdbuf();
out << " " << flush;
out << in2.rdbuf();

return 0;
}

РЕДАКТИРОВАТЬ = РЕШЕНИЕ:

Мои файлы назывались test1.txt и поэтому показывались программе как test1.txt.txt

0

Решение

Код выглядит нормально, вы можете попробовать использовать абсолютный путь или поместить файлы в тот же каталог исполняемого файла

2

Другие решения

Если вы используете Visual Studio, все относительные пути относятся к проекту рабочий каталог. По умолчанию, кажется, каталог проекта — это означает, что если в C:\SolutionX\ProjectY\Build\ProjectY.exe вы пытаетесь открыть путь «file.txt», Windows будет искать C:\SolutionX\ProjectY\file.txt, Если вы хотите изменить этот каталог, этот параметр находится в свойствах конфигурации проекта в разделе «Отладка» как «Рабочий каталог».

Обратите внимание, что если дважды щелкнуть исполняемый файл вручную, а не запускать его через Visual Studio, его рабочим каталогом будет его текущее местоположение. Если вместо этого вы запустите программу из командной строки, рабочим каталогом будет ваш рабочий каталог в командной строке.

0

По вопросам рекламы [email protected]