I am wondering how to read a file in c... this requires some more background information before you give me something useless

What I have so far:

#include <stdio.h>

int main(void)
{
	FILE *fpr,*fpw;
	char C;
	int I;
	
	fpr = fopen("cwM.dat","r");
	fpw = fopen("echocwM.dat","w");
	
	while (C != EOF)
	{
		fscanf(fpr,"%c",&C);
		fprintf(fpw,"%c",C);
		I = C;
		printf("%d\n",I);
	}

	fclose(fpr);fclose(fpw);
	
	return 0;
}

my real question is what if the file I'm trying to read is: ÿdÿ before you post a solution, check your code against the above file.

use "wb" and "rb" for writing and reading in data files

For me the question would be why would you use fscanf() to read a single character when fgetc() does it much more efficiently?

Thank You WaltP for pointing me to fgetc() I was looking through the MAN pages and was able to fix my problem by using ftell() to see if the offset stopped changing after each read as follows:

#include <stdio.h>

int main(void)
{
	FILE *fpr,*fpw;
	char C;
	int I, i, EC, t, tl;
	
	fpr = fopen("cwM.dat","r");
	fpw = fopen("echocwM.dat","w");
	EC=0;
	t = ftell(fpr);
	printf("%d\n",t);
	tl=t;
	for(;;)
	{
		C = fgetc(fpr);
		t=ftell(fpr);
		printf("%d\n",t);
		if (t == tl)
		{
			break;
		}
		else
		{
			tl = t;
		}
		fprintf(fpw,"%c",C);
		I = C;
		if (I < 0)
		{
			I += 256;
		}
	}

	fclose(fpr);fclose(fpw);
	
	return 0;
}

Thank You WaltP for pointing me to fgetc()

You're welcome....

I was looking through the MAN pages and was able to fix my problem by using ftell() to see if the offset stopped changing after each read as follows:

Terrible idea. Why not just test the return of fgetc() and process the error or EOF?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.