使用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