#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable: 4996)
#define FLUSHLINE getchar()
void attachFile(FILE* _spGetty);
void copyOwn(FILE* _spGetty, FILE* _spCopy);
void sixtyDivide(FILE* _spGetty);
int main(void)
{
FILE* spGetty;
spGetty= fopen("Gettysburg Address.txt", "a");
if(!spGetty)
{
printf("Cannot open file\a\n");
exit(201);
}
//FILE* spCopy;
//spCopy= fopen("Gettysburg Address.txt", "r");
//attachFile(spGetty);
//copyOwn(spGetty, spCopy);
sixtyDivide(spGetty);
fclose(spGetty);
return 0;
}
void sixtyDivide(FILE* _spGetty)
{
int numIn;
int cnt= 0;
char line= '\n';
char ch;
fseek(_spGetty, SEEK_END, SEEK_SET);
while( fscanf(_spGetty, "%c", &numIn)!= EOF)
{
cnt++;
if((ch= fgetc(_spGetty))== '\n')
{
cnt--;
FLUSHLINE;
}
if(cnt== 60)
{
fputc(line, _spGetty);
cnt= 0;
}
}
return ;
}
코딩은 이러한데, 이 문제는 텍스트 파일안에 영문으로된 책같은 내용이 있는데 이걸 가변 길이의 한 줄을 읽어서 각 줄이 60자인
형식화된 파일로 변환하는 함수를 작성하는거다.
중간 함수들은 무시하고 마지막에 sixtyDivide 함수에서 문자를 읽어들이고 카운트를 증가하고 그게 60이 되면 개행을 해주고
카운트를 0으로 한다음 다시 반복인데 파일에 아무런 변화가 없다. 이유좀 알려줘라
FLUSHLINE은 인위적으로 넣은 개행이 아닌 원래 텍스트파일에 있는 개행문자를 제거해준다고 넣었는데 맞는지좀 봐줘
댓글 0