Я пытаюсь создать программу, которая будет объединять (добавить два списка целых чисел вместе)
каждый список хранится в виде текстового файла. Я хочу, чтобы программа 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
Код выглядит нормально, вы можете попробовать использовать абсолютный путь или поместить файлы в тот же каталог исполняемого файла
Если вы используете Visual Studio, все относительные пути относятся к проекту рабочий каталог. По умолчанию, кажется, каталог проекта — это означает, что если в C:\SolutionX\ProjectY\Build\ProjectY.exe
вы пытаетесь открыть путь «file.txt», Windows будет искать C:\SolutionX\ProjectY\file.txt
, Если вы хотите изменить этот каталог, этот параметр находится в свойствах конфигурации проекта в разделе «Отладка» как «Рабочий каталог».
Обратите внимание, что если дважды щелкнуть исполняемый файл вручную, а не запускать его через Visual Studio, его рабочим каталогом будет его текущее местоположение. Если вместо этого вы запустите программу из командной строки, рабочим каталогом будет ваш рабочий каталог в командной строке.