错误消息说调试断言失败

时间:2019-01-06 09:12:04

标签: c

我一直试图做一个保存功能,用不同的文件名保存一个新文件,并且我收到此错误消息,抱怨该fread,我猜它是因为找不到fopen,但是它被写了,我仍然会收到错误消息,因此,如果有人可以帮助在代码中显示出什么问题,我将非常感激。

代码链接:

表达式:stream!= nullptr 行:48

我不确定为什么要保存新文件时错误出现在选择菜单中,但是当用户选择菜单选择中的任何其他内容时却不显示错误。

示例:

输入:

1 个答案:

答案 0 :(得分:0)

fflush(stdin); 可能在printf("\nEnter the New File Name:");之后不起作用,因此scanf("%[^\n]", name);的输入为'\ n',并且不执行任何操作,并且 name 之后,未设置em>并且为空

    fp = fopen(name, "wb");
    fp1 = fopen(fname, "rb");

由于名称无效,因此fopen无效,因此在 fp fp1 为空之后,会导致断言失败。

请勿使用 fflush ,并且在您进行 fopen 检查之后,始终不会获得空指针。

只需替换

fflush(stdin);
scanf("%[^\n]", name);

作者

scanf("%s", name);

一切都会好的