文件的写入问题帮忙看看代码
#include<stdio.h>#include<stdlib.h>
#include<string.h>
#define MAX 100
struct character
{
char A;
}low;
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.A=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.A,low.A)==0&&i==j)
{
fwrite(low.A,sizeof(struct character),1,fp2);
fprintf(fp2,"\n");
}
}
}
fclose(fp2);
}
为什么我写入的文件会有两个回车
如果我把fprintf(fp2,"\n");
去掉就会变成
如何才能每个字符占一行?求大神指教
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100
struct character
{
char A;
}low;
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.A=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.A,low.A)==0)
break;
if(j == i)
{
//fwrite(&low,sizeof(struct character),1,fp2);
//fwrite是以二进制的形式写入文件中
fputs(low.A, fp2);
fprintf(fp2,"\n");
}
}
fclose(fp2);
} 自己顶有没有大神帮我 解答啊 求解答啊 帮你顶一下吧,这个问题需要查阅FILE相关的函数了,我对这个不太熟悉。用一些定位类的函数,然后自己设计算法才能实现。 木丶白水 发表于 2014-8-19 09:29
#include
#include
#include
大神太感谢了 没想到我这么多错误 谢谢分享~~~~~~~~~~
页:
[1]