当前位置: 技术问答>linux和unix
帮我看看fprintf这个函数吧,谢谢
来源: 互联网 发布时间:2017-02-05
本文导语: #include #include #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]=''; printf("%s %dn",A,i);//打印到屏幕上 fprintf(fp1,"%s",A);//...
#include
#include
#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]='';
printf("%s %dn",A,i);//打印到屏幕上
fprintf(fp1,"%s",A);//输出到A.txt里
}
return 0;
}
这样子勉强能执行,但是我把上面第九行改成fp1=fopen("A.txt","wb+");编译后再执行时发生段错误,这是为什么呢?
#include
#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]='';
printf("%s %dn",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("");打印一下错误信息。
if(fp1 == NULL) {
fprintf(stderr, "Open file fails.n");
perror("");
exit(1);
}
楼主加上这样的判断看看,我估计fp1没有正常打开文件。
如果是Linux环境,可以用perror("");打印一下错误信息。