Programming/MFC-C++

[C++, C] 파일의 중간 부분 데이터 변경하기

빠릿베짱이 2013. 4. 25. 11:53
반응형

바이너리 파일(물론 텍스트도 가능 할 것이다)에서

중간에 있는 값을 변경해야 하는 경우

fopenfwrite, fsetpos 함수를 사용하여 변경할 수 있다.

테스트를 위한 코드로서 가장 중요한 것은 코드는

fopen("D:\\TEST.TXT", "rb+");

 

	FILE* fp;
	fp = fopen("D:\\TEST.TXT", "wb");
	if(fp)
	{	
		for(int i=0; i< 10; i++)
		{
			fwrite(&i, sizeof(int), 1, fp);	
		}
		fclose(fp);
	}	

	fp = fopen("D:\\TEST.TXT", "rb+");

	if(fp)
	{
		fpos_t filepos = sizeof(int)*3;
		fsetpos(fp, &filepos);
		int i=10;
		int nco = fwrite(&i, sizeof(int), 1, fp);	
		fclose(fp);

	}
	

	fp = fopen("D:\\TEST.TXT", "rb");

	if(fp)
	{
		int nval;
		for(int i=0; i< 11; i++)
		{
			fread(&nval, sizeof(int), 1, fp);
		}
		fclose(fp);
	}

반응형