我在Borland C中运行以下代码并出现以下错误:
线程已停止。 j:\ bc5 \ bin \ file \ pro001.exe:执行故障访问冲突 0x4043cc:读取地址0x12。
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *fp;
fp=fopen ("C:\Users\MEYSAM\Desktop\1.txt","w+");
fprintf (fp,"This is testing for fprintf ...\n");
fputs ("that is output filename by reference.",m);
fclose (fp);
}
答案 0 :(得分:1)
可能fopen()
失败,返回NULL
文件指针。
您必须始终检查I / O操作是否成功。
答案 1 :(得分:1)
你需要这个:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
fp=fopen ("C:\\Users\\MEYSAM\\Desktop\\1.txt","w+");
// ^ using \\ instead of \, you need to escape the \ character
if (fp == NULL) // << checking if file could not be opened
{
printf("Could not open file.\n");
return 1;
}
fprintf (fp,"This is testing for fprintf ...\n");
fputs ("that is output filename by reference.", fp);
// ^ replaced m by fp
fclose (fp);
}
答案 2 :(得分:0)
首先,您没有检查fopen
是否已成功。另一个问题是你在代码中写道:
fputs ("that is output filename by reference.",m);
其中m
未定义且应该是文件的名称,因此它应为fp
。
Here您可以找到fputs
的使用情况。