你好,我正在制作一个应该复制文本文件的程序。该文本文件目前只是3行文本。 textFileCopy函数应该读入由文件名数组给出的文本文件,然后输出由文件名数组给出的文本文件的副本。C++使用头文件复制文本文件程序
这是我的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;
}
我在创建.cpp文件中.h文件中定义的函数时遇到了问题,并且我从.cpp文件中得到了此行FileUtilities::textFileCopy(char filenamein[], char filenameout[])
的错误。我知道在函数的实际代码工作它只是一线
UPDATE
行,所以我已经把布尔函数之前。
现在程序编译,我得到一个错误的对话框如下
“微软的Visual C++调试库
调试断言失败
计划:!.....分析器。 EXE文件 F:\ DD \ vctools \ crt_bld \ Self_x86 \ CRT \ SRC \ fopen.c 线53
表达:(文件!= NULL)”
然后它会在visual studio中打开文件“dbghook.c”
您可以发布您正在收到的错误,这将更容易诊断您的问题。一个明显的问题是你错过了'bool'返回类型。 – Pablo 2011-04-30 19:49:30
**请**不要在命名空间中使用'namespace',这会让您的代码更少重用。 – 2011-04-30 19:49:49
您还有其他问题。把它放在另一个帖子中。 – 2011-04-30 20:12:54