注册 登录
编程论坛 C语言论坛

字符串保存到文件错误输出

D2284581470 发布于 2019-12-21 23:17, 2643 次点击
[附件]1
只要前面一部分,但是为什么多了
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int i,j;
    char a[20],b[20];
    FILE *fp,*fq;
    if((fp=fopen("D:\\1.txt","r"))==NULL)
    {
        printf("打开文件失败\n");
        getchar();
        exit(1);
    }
    if((fq=fopen("D:\\2.txt","w"))==NULL)
    {
        printf("打开文件失败\n");
        getchar();
        exit(1);
    }
    fgets(a,strlen(a),fp);
    for(i=strlen(a)-1,j=0;i>=0;i--,j++)
    {
        b[j]=a[i];
    }
    fputs(b,fq);
    fclose(fq);
    fclose(fp);
    getchar();
    return 0;
}
11 回复
#2
D22845814702019-12-21 23:17
只有本站会员才能查看附件,请 登录
#3
D22845814702019-12-21 23:42
只有本站会员才能查看附件,请 登录
#4
D22845814702019-12-21 23:42
只有本站会员才能查看附件,请 登录
#5
纯蓝之刃2019-12-21 23:43
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int i,j;
    char a[20],b[20]={0};                //b数组没附初始值
    FILE *fp,*fq;
    if((fp=fopen("D:\\1.txt","r"))==NULL)
    {
        printf("打开文件失败\n");
        getchar();
        exit(1);
    }
    if((fq=fopen("D:\\2.txt","w"))==NULL)
    {
        printf("打开文件失败\n");
        getchar();
        exit(1);
    }
    fgets(a,sizeof(a),fp);                //strlen(a)换成sizeof(a)将fp文件中的数据都付给a.
    printf("a=%s",a);
    for(i=strlen(a)-1,j=0;i>=0;i--,j++)
    {
        b[j]=a[i];
    }
    fputs(b,fq);
    fclose(fq);
    fclose(fp);
    getchar();
    return 0;
}
#6
D22845814702019-12-21 23:43
这个我改好了,难道不一样吗,
#7
纯蓝之刃2019-12-21 23:50
没事,应该是我把编译器设置成了UTF-8的格式,导致读取GBK文件后判断strlen长度不对了。
你那个应该主要就是没有设置初始化的问题。
#8
zbjzbj2019-12-21 23:51
    fgets(a,sizeof(a),fp);
    for(i=strlen(a)-1,j=0;i>=0;i--,j++)
    {
        b[j]=a[i];
    }
    b[j]=0;
    fputs(b,fq);
    fclose(fq);
    fclose(fp);
    getchar();
    return 0;
}

[此贴子已经被作者于2019-12-21 23:53编辑过]

#9
D22845814702019-12-25 15:58
回复 7楼 纯蓝之刃
不是,我的意思是我写的没问题啊,但是问什么错误
#10
rjsp2019-12-25 16:06
以下是引用D2284581470在2019-12-25 15:58:36的发言:

不是,我的意思是我写的没问题啊,但是问什么错误

你写的有问题呀,纯蓝之刃 在5楼说了:
fgets(a,sizeof(a),fp);                // strlen(a)换成sizeof(a)

#11
D22845814702019-12-25 16:09
回复 7楼 纯蓝之刃
谢谢,您的对了,我的错了
#12
D22845814702019-12-25 23:03
回复 10楼 rjsp
嗯嗯,对,我改了
1