鱼C论坛

 找回密码
 立即注册
查看: 2383|回复: 6

文件的写入问题帮忙看看代码

[复制链接]
发表于 2014-8-18 19:06:39 | 显示全部楼层 |阅读模式
3鱼币
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
struct character
{
        char A[MAX];
}low[MAX];
main()
{
        int i,j;
        char ch;
        FILE *fp1,*fp2;
        if(!(fp1=fopen("E:\\11.txt","r")))
        {
                printf("can not open");
                exit(1);
        }
        if(!(fp2=fopen("E:\\111.txt","w")))
        {
                printf("can not write");
                exit(1);
        }
        while(ch!=EOF)//将文件11.txt内容以每行一个字符形式输入到low[].A;
        {
                for(i=0;i<MAX;i++)
                {
                        ch=fgetc(fp1);
                        for(j=0;j<MAX;j++)
                        {
                                if(ch!='\n')
                                {
                                        low[i].A[j]=ch;
                                        ch=fgetc(fp1);
                                }
                                else
                                {
                                        break;
                                }
                        }
                        
                }
        }
        fclose(fp1);
        for(i=0;i<MAX;i++)//将文件11.txt内容以每行一个字符形式存到111.txt,重复的跳过
        {
                for(j=0;j<=i;j++)
                {
                        if(strcmp(low[i].A,low[j].A)==0&&i==j)
                        {
                                fwrite(low[i].A,sizeof(struct character),1,fp2);
                                fprintf(fp2,"\n");
                        
                        }

                }
        }
        
        fclose(fp2);
}


为什么我写入的文件会有两个回车
如果我把fprintf(fp2,"\n");
去掉就会变成
QQ图片20140818190638.jpg
如何才能每个字符占一行?求大神指教


最佳答案

查看完整内容

#include #include #include #define MAX 100 struct character { char A[MAX]; }low[MAX]; main() { int i,j, temp; char ch; FILE *fp1,*fp2; if(!(fp1=fopen("E:\\11.txt","r"))) { printf("can not open"); exit(1); } if(!(fp2=fopen("E:\\111.txt","wt"))) { printf("can no ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-18 19:06:40 | 显示全部楼层
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
struct character
{
        char A[MAX];
}low[MAX];
main()
{
        int i,j, temp;
        char ch;
        FILE *fp1,*fp2;
        if(!(fp1=fopen("E:\\11.txt","r")))
        {
                printf("can not open");
                exit(1);
        }
        if(!(fp2=fopen("E:\\111.txt","wt")))
        {
                printf("can not write");
                exit(1);
        }
        temp=0;
        while(!feof(fp1))//将文件11.txt内容以每行一个字符形式输入到low[].A;
        {
                ch=fgetc(fp1);
                for(j=0;j<MAX;j++)
                {
                        if(ch !='\n'&&!feof(fp1))
                        {
                                low[temp].A[j]=ch;
                                ch=fgetc(fp1);
                        }
                        else break;
                }
                                temp++;
        }
        fclose(fp1);
        for(i=0;i<temp;i++)//将文件11.txt内容以每行一个字符形式存到111.txt,重复的跳过
        {
                for(j=0; j<i; j++)
                    if(strcmp(low[i].A,low[j].A)==0)
                            break;
                if(j == i)
                                {
                    //fwrite(&low[i],sizeof(struct character),1,fp2);
                                        //fwrite是以二进制的形式写入文件中
                    fputs(low[i].A, fp2);
                    fprintf(fp2,"\n");
                }
        }

        fclose(fp2);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-8-18 19:24:47 | 显示全部楼层
自己顶有没有大神帮我 解答啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-8-18 20:02:23 | 显示全部楼层
求解答啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-19 08:48:30 | 显示全部楼层
帮你顶一下吧,这个问题需要查阅FILE相关的函数了,我对这个不太熟悉。用一些定位类的函数,然后自己设计算法才能实现。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-8-19 10:34:19 | 显示全部楼层
木丶白水 发表于 2014-8-19 09:29
#include
#include
#include

大神太感谢了 没想到我这么多错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-20 10:06:23 | 显示全部楼层
谢谢分享~~~~~~~~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 20:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表