vision929   6년 전

<C++로 시작하는 객체지향 프로그래밍>이란 책에 13.1 실습 문제에 대한 질문입니다.

 (텍스트 파일 생성) Exercise13_1.txt라는 파일이 존재하지 않는다면
 이 파일을 생성하기 위한 프로그램을 작성하여라. 만약 파일이 존재하고 있다면
 파일의 끝에 새로운 데이터를 추가한다. 텍스트 입출력을 사용하여 임의적으로
 생성된 100개의 정수를 파일에 쓴다. 각 정수는 공백으로 분리시키라.

가 문제인데요. 
여기서 처음 텍스트 파일에 저장된 임의의 정수 100개가 그대로 저장되어 두 번째 역시 앞에서 저장된 임의의 정수 100개가 그대로 저장되어 나옵니다. 여기서 어떻게 해야, 매번 실행할 때마다 새로운 정수가 추가될 수 있을지 궁금합니다.

gallopsys   6년 전

main 함수를 실행하기 전에 srand((unsigned int)time(NULL));을 추가하고 시작해보세요. 무작위의 정수를 생성하기 위한 난수 생성기에 시드가 항상 같은 값이 들어가 발생하는 문제로 보여집니다.
컴파일에 문제가 생긴다면 #include <ctime>을 추가하고 해보면 사용하실 수 있을 겁니다.

참고로 C++에선 메르센 트위스터 난수 엔진이라고 해서 mt19937이라 불리는 엔진이 있는데 그걸 사용드리는 걸 추천드리고 싶습니다.

vision929   6년 전

gallopsys 님 감사합니다! 

바로 실행해보니까 제대로 실행되네요!

더군다나 다른 엔진까지 추천해주셔서 정말 감사합니다.

댓글을 작성하려면 로그인해야 합니다.