1.

Solve : how to read a file having more then one EOS?

Answer»

Hi guys,

I have a problem, I make a program in c in which i write a s.txt text file having all the character VALUE from 1 to 256.
then i read the file and TRY to print all the values in another file, but character number 26 is EOS HENCE it breaks at that point.
Now i want to read the file till 256 characters. Could some one please help me to solve my issue.
program is as follows:
Code: [Select]#include<stdio.h>
#include<stdlib.h>
int main()
{
int ch,ch1;
int i=0,j=0,k=0,i1;
FILE *fp,*fs;
fp=fopen("s.txt","w");
for(i1=0;i1<256;i1++)
{
FPRINTF(fp,"%c",i1);
}
fclose(fp);
fp=fopen("s.txt","r");
fs=fopen("ss.txt","w");
while(1)
{
ch=(int)(fgetc(fp));
if(ch==EOF && j>=1)
{
fprintf(fs,"%d. %d %c\n",i,ch,ch);
break;
}
else if(ch==EOF && j<1)
{
fprintf(fs,"%d. %d %c\n",i,26,26);
j++;
i++;
ch=27;
}
else
{
fprintf(fs,"%d. %d %c\n",i,ch,ch);
i++;
}
}
fclose(fs);
fclose(fp);

}
thanks in advanceI have tried something else
Code: [Select]#include<stdio.h>
#include<stdlib.h>
int main()
{
int ch;
int i=0,j=0,k=0,i1;
char BUFFER[257],ch1;
FILE *fp,*fs;
fp=fopen("s.txt","w");
for(i1=0;i1<256;i1++)
{
fprintf(fp,"%c",i1);
}
fclose(fp);
fp=fopen("s.txt","r");
fs=fopen("ss.txt","w");
for( i=0;i < 256; i++ )
{
ch1=(fgetc(fp));
buffer[i] = ch1;
if(i==26)
{
fprintf(fs,"%d. %d %c\n",i,ch1,26);
}
else
{
ch = (int)ch1;
fprintf(fs,"%d. %d %c\n",i,ch,ch1);
}
}
fclose(fs);
fclose(fp);
return 0;
}
but after getting EOL at 26 it prints EOS till 256 plz help to solve.futher something improved but still after 26 it read and prints EOS.
Code: [Select]#include<stdio.h>
#include<stdlib.h>
int main()
{
int ch;
int i=0,j=0,k=0,i1;
char buffer[257],ch1;
FILE *fp,*fs;
fp=fopen("s.txt","w");
for(i1=0;i1<256;i1++)
{
fprintf(fp,"%c",i1);
}
fclose(fp);
fp=fopen("s.txt","r");
k = sizeof(fp);
printf("%d\n", k);
fs=fopen("ss.txt","w");
for( i=0;i < 256; i++ )
{
if(i==26)
{
fprintf(fs,"%d. %d %c\n",i,26,26);
}
else
{
ch1=(getc(fp));
buffer[i] = ch1;
ch = (int)ch1;
fprintf(fs,"%d. %d %c\n",i,ch,ch1);
}
fprintf(fs,"%c\n",buffer[i]);
}

fclose(fs);
fclose(fp);
return 0;
}I got the solution :

#include
#include
int main()
{
int ch;
int i=0,j=0,k=0,i1;
FILE *fp,*fs;
fp=fopen("s.txt","w");
for(i1=0;i1<256;i1++)
{
fprintf(fp,"%c",i1);
}
fclose(fp);
fp=fopen("s.txt","rb");
fs=fopen("ss.txt","wb");
while(!feof(fp))
{
ch=(int)(fgetc(fp));
fprintf(fs,"%d. %d %c\n",i,ch,ch);
i++;
}
fclose(fs);
fclose(fp);
return 0;
}



Discussion

No Comment Found