使用fputs写入文件时报错?

使用fputs写入文件时报错?

问题描述:

代码如下

#include <stdio.h>
#include <string.h>
int main(void)
{
	char DestinationName[200];
	printf("请输入源文件的路径:");
	fgets(DestinationName, 199, stdin);
	*strchr(DestinationName, '\n') = '\0';
	FILE* Destination = NULL, * Target = NULL;
	if ((Destination = fopen(DestinationName, "r")))
	{
		char TargetName[200];
		printf("请输入目标文件路径:");
		fgets(TargetName, 199, stdin);
		*strchr(TargetName, '\n') = '\0';
		if ((Target = fopen(TargetName, "r+")))
		{
			char temp1[100], temp2[100];
			long Location[2];
            //fputs("cs", Target);在此处执行无任何问题
			while (fgets(temp1, 100, Destination) && fgets(temp2, 100, Target))
			{
				Location[0] = strlen(temp1);
				Location[1] = strlen(temp2);
				fputs("cs", Target);//执行到此处Vs会有个报错 但是使用其他软件执行不会报错但是没有任何效果	
			}
			if (fclose(Target))
				fprintf(stderr, "目标文件关闭失败!");
		}
		else
			fprintf(stderr, "目标文件打开失败!");
		if (fclose(Destination))
			fprintf(stderr, "源文件关闭失败!");
	}
	else
		fprintf(stderr, "源文件打开失败!");
	return 0;
}

报错内容

Microsoft Visual C++ Runtime Library

Debug Assertion FailediProgram: F:\Vs2019\项目\Update'\Debug\Update.exeFile: minkernel\crts\ucrt\src\appcrt\ stdio\fwrite.cpp Line: 88

Expression: ("Flush between consecutive read and write.".!stream.has any of( IOREAD)

For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)

如果使用 r+ 的话,目的文件必须要存在。

确认一下文件是否存在,或者在用W+权限试试。

C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y