본문 바로가기

공부/C++

rand 와 srand 를 이용한 랜덤수 코딩 일반적으로 rand만 사용하면 말만 랜덤이고 실제는 그 실행 내에서 정해진 랜덤수가 튀어나오게 되는데 이걸 방지하는게 srand 입니다. 이 코드에서는 그냥 메인에 두었지만.. MFC 코딩에서는 초기화 부분에 SRAND를 두면 됩니다. 본 코드는 0부터 99까지의 숫자 를 10개 받아 서로 비교하여 가장 큰 숫자가 몇번째 배열에 있는지를 출력합니다. =================================================================== #include #include #include void main() { int value[10] = {0, }, max_index = 0, i = 0; //값이 들어갈 배열 , 최대값의 주소를 나타내는 변수, 반복을 위한 변수 i를 선언.. 더보기
간만의 공부글 warning 을 지워보자 중복 정의, 미사용 변수, 변수간 타입의 차이에 의한 경고문 등.. 프로그래밍을 하다보면 으레 이런 경고문들이 뜨게 마련이다. 프로그램 자체에는 영향을 주지 않는데 왠지 보이는게 꺼림찍 하다면 아래와 같은 방법으로 컴파일 시 경고문구가 뜨지 않게 하는것은 어떨까.[물론 왜 가렸는지는 주석을 통해서 알 수 있게 해야한다.] #pragma warning(push) #pragma warning(disable: 4018) 불라불라불라 warning 이 뜨게되는 코드들 #pragma warning(pop) 을 하면 컴파일 시에 위의 번호에 해당하는 경고문구가 뜨지 않게된다. 그러하다고 합니다. 데굴데굴. 만들어놓고 나중에 쓸 예정인 변수라던가. = 을 통한 타입이 다른 값의 대입 등에 쓰면 좋을 듯. 더보기
CARRAY 를 사용한 구조체는.. 반복문을 통해 전체를 불러올 때에도 그 사이즈가 유동적 이기때문에 매번 최대 크기 를 구해서 반복문의 횟수로 정해주어야 한다. 즉 for문을 돌릴 때 대부분의 for문들은 for( i등의 횟수에 관한 int값 ; i m_UserName.GetSize(); 이렇게 짜 주고 for문에다가 maxsize를 넣어주면 에러 없이 잘 작동하게 된다. 더보기
#ifndef 란 무엇인가 / 사용하는 방법. 여러번 include 를 사용하여 참조함으로써 발생하는 중복된 정의 가 발생하지 않게 하기위한 방법. 사용하는 방법은 #ifndef _ABC_ #define _ABC_ 속에 넣을 코드 입력 #endif 이렇게 만들거나 #ifndef _ABC_ 속에 넣을 코드 입력 #endif 이렇게 하는 방법이 있다. 이러한 처리를 해두지 않고 다중으로 include를 하게되면 여러번 같은 변수나 함수가 선언되게 되어 에러가 나게된다. 반대로 해당 정의가 되어있을 경우[#define] 에 실행하도록 하는 것은 #ifndef(“If not define”)의 반대인 #ifdef 이다. 더보기
error LNK2019 에러의 경우 error LNK2019 에러의 경우 막 이 에러가 왜 나는가 해결법은 무엇인가 하는 글들이 많다. 하지만 실제로 그 행동을 해서 에러가 해결되지 않는 경우가 많다. 에러를 자세히 보면 왜 그런 에러가 나는지 알 수 있는데. 일단 에러를 보자. 오류1error LNK2019: "public: int __cdecl CMark::LoadMark(void)" (?LoadMark@CMark@@QAAHXZ) 외부 기호(참조 위치: "public: int __cdecl CMark::Init(void)" (?Init@CMark@@QAAHXZ) 함수)에서 확인하지 못했습니다.Mark.objE9 (E9\Program Main\E9) 이 경우 무엇이 문제일까? init 멤버함수 에서 사용되는 LoadMark 멤버함수가 정.. 더보기