Debug Assertion Failed!
Program: ...ments\Visual Studio 2015\Projects\Project9\Debug\Project9.exe File: minkernel\crts\ucrt\src\appcrt\stdio\fopen.cpp Line: 30
Expression: file_name != nullptr
For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
出错的代码位置
int main(int argc, char **argv)
ifstream input(argv[1]);
ofstream output(argv[2]);
return 0;
报错原因与解决方式
笔者认为这是一个比较没有意义的报错,原因在于VS2019的fopen头函数出错。
改为手动输入文件名,就能解决这个问题。
若读者有更好的解决方式,欢迎留言讨论。
文本文件:存放在内存的数据转换成相对应的ASCI字符。
二进制文件:内存里怎么存的,磁盘里也是怎么存的。(不需要转换)其读写要快:无须转化
对文件的操作:open read write close。
int main()
FILE *fp1 = fopen("test1.txt", "w");//失败返回NULL 成功
FILE *fp2 = fopen("test2.txt", ...
debug assertion failed!
program:C:\Users\njay\...\Debug\test.exefile:afxwin2.inlline:741for information on how your programe can cause an assertionfailure,see th...
---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Debug Assertion Failed!
Program: <program name unknown>
File: f:\dd\vctools\vc7libs\ship\atlmfc\sr...
Debug Assertion Failed! Program:E:/Imageprocessing/debug/Imageprocessing.exe Files:dbghead.c Line:1044 For information on how your program can cause an assertion failure,see the Visual C++ documentati
1.看一看你的程序里是不是有ASSERT()或VERIFY()语句。这两个宏是用来测试它的参数是否为真的。出现你说的,这说明你的指针或表达试有问题
2.File: timecore.cpp Line:40 打开看看就知道了
3.vc++中遇到过此问题,在release下回忽略此问题,其实就是野指针的问题,在release
"错误通常是由于程序中触发了断言错误导致的。要解决这个错误,我们需要找到触发断言错误的原因,并采取相应的措施修复代码。在本文示例中,我们通过添加对除数是否为0的判断来避免了断言错误的发生。这个错误通常会在程序运行过程中弹出一个对话框,提示你发生了一个断言错误。这种错误的出现一般是由于程序在运行时发现了一些不符合预期的情况,进而触发了一个断言(Assertion)。断言用于检查程序运行过程中的一些假设条件是否满足,如果不满足,就会触发断言错误。这个错误提示告诉我们,在代码的某个位置,对字符串进行了越界访问。
出现这种情况很可能是使用了野指针,即只声明了某个指针,而没有进行初始化。或者是指针为局部变量,而在指针的作用域之外使用了指针。
依次查看工程中的指针是否进行了初始化。问题解决。
读者如果和我的问题类似但不同,或解决方法无用,根据报错中FILE的提示,寻找代码对应部分,进行查看找错。经过我反复查找发现,出现这个问题的原因,竟是文件路径中冒号写成了分号。我出现的问题在于 output 到文件出现问题;