Здравствуйте, я делаю программу, которая должна копировать текстовый файл. Текстовый файл - это всего лишь 3 строки текста на данный момент. Функция textFileCopy должна считывать текстовый файл, указанный в массиве filenamein, а затем выводить копию текстового файла, указанного в массиве filenameout.
Это мой файл main.cpp. В этом файле программа требует, чтобы пользователь отправил входное имя файла и выходное имя файла в качестве аргументов, которые я только что сделал с помощью поля аргумента команды в Visual Studio, поле аргумента команды содержит «input.txt output.txt», так что это означает, что argv [1] содержит входной файл, а argv [2] содержит выходной файл, который необходимо создать
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
#include "FileUtilities.h"
int main(int argc, char **argv) {
FileUtilities fileUtil;
fileUtil.textFileCopy(false, false);
if (argc !=3) {
cerr << "Usage: " << argv[0] << " <input filename> <output filename>" << endl;
int keypress; cin >> keypress;
return -1;
}
fileUtil.textFileCopy(argv[1], argv[2]);
int keypress; cin >> keypress;
}
И это файл FileUtilities.h, который объявляет функцию textFileCopy
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
#pragma once
class FileUtilities
{
public:
bool textFileCopy(char filenamein[], char filenameout[]);
};
А вот соответствующий файл FileUtilities.cpp, включающий функцию textFileCopy
#include <iostream>
#include <fstream>
#include <string>
#include "FileUtilities.h"
bool FileUtilities::textFileCopy(char filenamein[], char filenameout[])
{
ifstream fin(filenamein);
if(fin.is_open())
{
ofstream fout(filenameout);
char c;
while(fin.good())
{
fin.get(c);
fout << c;
}
fout.close();
fin.close();
return true;
}
return false;
}
У меня проблемы с созданием функции, определенной в файле .h в файле .cpp, и я получаю ошибки с этой строкой FileUtilities::textFileCopy(char filenamein[], char filenameout[])
из файла .cpp. Я знаю, что реальный код в функции работает только в первой строке
UPDATE
Хорошо, я поставил bool перед функцией.
Теперь программа компилируется, и я получаю сообщение об ошибке в диалоговом окне следующим образом
"Библиотека отладки Microsoft Visual C ++
Ошибка отладочного подтверждения!
Программа: ..... Parser.exe
файл f: \ dd \ vctools \ crt_bld \ Self_x86 \ crt \ src \ fopen.c
Строка 53
Выражение: (file! = NULL) "
затем он открывает файл "dbghook.c" в visual studio