#include
#include
#define MAX 100
FILE* fpt;
const char arr[MAX] = "";
int binarymaker(int n);
void main(const int n, const char* filename[MAX])
{
if(n != 2) // Inputted file name checker
{ printf("Error"); exit(0); }
char arr[MAX] = "";
fpt = fopen(filename[1], "rb");
int ch;
while( ( ch = fgetc(fpt)) != EOF)
binarymaker(ch);
fclose(fpt);
}
int binarymaker(int n)
{
if(n == 0)
{ printf("0"); return 0; }
if(n == 1)
{ printf("1"); return 0; }
binarymaker(n / 2);
if(n % 2 == 0)
printf("0");
if(n % 2 == 1)
printf("1");
}
/* 파일 스트림에 대해 막 배우고 있는 프로그래밍 초보입니다.
파일 내용을 binary로 보고 싶어서 int형 정수를 한 글자씩 argument로 받아서
한 글자씩 바이너리로 출력하는 함수를 만들었습니다.
그런데 텍스트 파일은 문제없이 출력되는데,
용량이 조금 큰 파일부터는 아예 도중에 출력이 멈추네요.
왜 그런지 이유를 알고싶습니다. 스택이 다 차서 프로그램이 강제로 종료되는건가요?
(아직 비트연산자를 배우기 전 단계라 이렇게나마 binary로 출력하는 함수를 만들 수 밖에 없었습니다) */