소스 -
if ((rf = fopen(fname, "w")) == NULL )
{
perror("fopenerror");
exit(1);
}
for (k = 0; k < 128; k++)
{
c = rand() % 10 + '1';
for (i = 0; i < 1 * _MB; i++)
{
fputc(c, rf);
}
}
fclose(rf);
이런식으로 해서 텍스트 파일에 0~9 숫자를 출력하려고하는데
파일 열어보면 같은 숫자만 나와있음...
왜이럴까?ㅠㅠ
c = rand() % 10 + \'1\'; 가 아니라 c = rand() % 10 + \'0\'; 일거같은데... 이건 나중에 디버깅해보고, rand 함수는 규칙성이 산술연산으로 표현하기 힘든 수열이라 수열의 초기 값을 설정해줘야 함. 이게 srand라고 seed 설정하는건데, 매번 다르게 돌리려면 srand(time(0))을 제일 앞에 넣어야 함 (rand 함수 호출 전에, rand 호출할때마다 할 필요는 음슴)
ㄴ 물론 srand(time(NULL)) 넣었음
이건 srand문제와 별개임 srand로 시드를 초기화하지 않아도 랜덤값은 나와야됨
뭐하는건지 모르겠는데 넌 _MB만큼 똑같은거 계속 쓰고있다?
ㄴ 헐
개쪽팔리넹
ㄱㅅ