我正在创建一个复制文本文件的程序。我有一个 main.cpp 文件,它读取由 filenamein 数组给出的文本文件,然后输出由 filenameout 数组给出的文本文件的副本。我在 FileUtilities.h 中声明了这个函数
bool textFileCopy(char filenamein[], char filenameout[]);
然后 FileUtilities.cpp 包含
#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;
}
当我编译这个时,我得到一个 Visual C 断言失败。我得到一个标题为“Microsoft Visual C++ 调试库”的对话框,其中包含以下内容:
“调试断言失败!
程序:.....Parser.exe
文件 f:\dd\vctools\crt_bld\Self_x86\crt\src\fopen.c
53 号线
表达式:(文件!=NULL)“
这个错误给了我 3 个选项:Abort、Retry 或 Ignore。中止只是停止调试。重试会在 Visual Studio 中显示一条消息,显示“program.exe 已触发断点”。如果我在此处单击 break,Visual Studio 将打开一个名为“fopen.c”的文件并指向该文件中的第 54 行。
如果我从这一点继续,Visual Studio 会打开另一个名为“dbgook.c”的文件,其中包含指向第 62 行的指针。