帮我看看fprintf这个函数吧,谢谢
#include<stdio.h>
#include<stdlib.h>
#define MAX 1024
int main()
{
char A[MAX];
int i=0;
FILE*fp,*fp1;
fp1=fopen("A.txt","wb");//。。。第九行
fp=fopen("kk.txt","a+");
while(fgets(A,MAX-1,fp)!=NULL)
{i=strlen(A);
A[i-1]='\0';
printf("%s %d\n",A,i);//打印到屏幕上
fprintf(fp1,"%s",A);//输出到A.txt里
}
return 0;
}
这样子勉强能执行,但是我把上面第九行改成fp1=fopen("A.txt","wb+");编译后再执行时发生段错误,这是为什么呢?
[解决办法]
fopen这样的函数,都要判断一下返回值。
if(fp1 == NULL) {
fprintf(stderr, "Open file fails.\n");
perror("");
exit(1);
}
楼主加上这样的判断看看,我估计fp1没有正常打开文件。
如果是Linux环境,可以用perror("");打印一下错误信息。