SEED 텍스트 파일을 부른 상태에서
바로 변수로 넣지말고 출력해보라는 조언대로 해보자
왠 이상한 음수값이 나왔습니다.
왜 이런 걸까요?? 그 이유를 도저히 알 수가 업습니다..
코드도 적어보겠습니다
바로 변수로 넣지말고 출력해보라는 조언대로 해보자
왠 이상한 음수값이 나왔습니다.
왜 이런 걸까요?? 그 이유를 도저히 알 수가 업습니다..
코드도 적어보겠습니다
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main (){
char eword[255];
char * ptr = eword;
int stack=0;
int i,seed;
FILE * fp = fopen("eword.txt","r");
FILE * fs = fopen("SEED.txt","w");
while( !feof( fp ) ) {
ptr = fgets ( eword, sizeof(eword) , fp);
stack++;
}
fclose(fp);
fp = fopen("eword.txt","r");
seed = fscanf(fs,"%d");
srand ( seed );
for(i=0;i<rand()%stack+1;i++){
ptr = fgets ( eword, sizeof(eword) , fp);
fprintf ( fs, "d", rand()%stack);
}
printf("%s",ptr);
fclose(fp);
return 0;
}
fscanf(fs,"%d", &seed;); printf("%d",seed);
seed에 fscanf 실행 결과 리턴값을 저장하는게 아니라 fscanf가 읽어올걸 저장할 포인터 지정하는데다 설정해서 써야 원하는값이 나올거임
아래 댓글보고 다시 시도해보겠슴니다
결국 위의 명령대로 되는건데 값의 변화가 업읍니다 ㅠㅠ
그럼 fscanf 함수를 제대로 쓰고 있는지 간단한 예제 프로그램을 만들어서 실행시켜보자. 파일 열고 fscanf로 문서 내용 읽어오고 바로 printf 하는거로 짜서 지금 사용법이 맞는지 확인해 보센
printf 일일이 쓰기 귀찮으면 디버거를 쓰면 됨미다. 어쨋건 한단계씩 확인해봐
제대로 나오지 않네요 ㅠㅠ fscanf 사용법은 맞는거같은데..
읽어올 텍스트 문서는 확인했음?
파일 오픈해서 바로 %d로 했으니깐 문서 제일 처음에 숫자값 있어야함.
네 그리고 뒤의 코드에 시드문서에 난수를 저장하는건 잘 되요. :-;..
헉 아무것도 없어양 뭐지
텍스트문서에 숫자가 사라졌어양