728x90
300x250

[C++] 난수 생성


C++을 통한 난수 생성을 정리해봤다.

 


1. 난수 생성 - 방법

rand() % M을 하면 0~(M-1)까지의 수가 생성된다.

rand() % M + N을 하면 N~(M+N-1)까지의 수가 생성된다.

 

rand() % 100이면 0~99까지의 수가 생성됨. ( 0 ~ (100-1) )

rand() % 100 + 1이면 1~100까지의 수가 생성됨. ( 1 ~ (100+1-1) )

 

rand() % 96 + 5이면 5~100까지의 수가 생성됨. ( 5 ~ (96+5-1)

 

C++에는 <cstdlib> 라는 헤더파일에 rand라는 난수 생성 함수가 있다.

rand()함수를 호출하면 0에서 RAND_MAX까지의 정수 1개를 리턴한다.

 


2. 참고자료(Reference)


1. http://arer.tistory.com/10, Accessed by 2014-05-17

 

 

반응형
728x90
300x250

[C++] Delay 함수 구현하기 - ctime, clock(), CLOCKS_PER_SEC

 

#include <iostream>
#include <ctime>        //clock() 함수와 clock_t형이 정의되어 있다.

int main()
{
        using namespace std;
        cout << "지연 시간을 초 단위로 입력하십시오: ";
        float secs;
        cin >> secs;
        clock_t delay = secs * CLOCKS_PER_SEC;
                 //지연 시간을 시스템 단위 클록 수로 변환
        cout << "카운트를 시작합니다.\a\n";
        clock_t start = clock();   //프로그램이 실행된 후 경과한 시간이 start에 대입된다
        while (clock() - start < delay) 
// 다시 호출된 clock() 함수의 리턴값에서 선행 clock() 함수의 값을 빼내 지금부터 시간의 경과를 사용자가 요구한 지연 시간, delay와 비교하여 그 값에 이르기까지 프로그램을 지연한다.
                ;   / 세미콜론을 잊지 말자.
        cout << "종료\a\n";
        return 0;
}

 

Windows.h를 이용한 sleep이라는 방법도 존재한데 이와 같이 구현하는 것도 관리 면에서 괜찮다고 볼 수 있다.
이유는 Windows.h의 불필요한 라이브러리를 불러오지 않기 때문이다. Windows.h와는 달리 ctime은 기본 라이브러리에 해당된다.

 


1. 참고자료(Reference)

 

1. http://dexion.tistory.com/24, Accessed by 2014-05-17

반응형
728x90
300x250

[C++] 화면 클리어 = system("cls")

아래의 코드 처럼 구현하면 system("cls")를 사용할 수 있습니다.

이 코드를 사용하면, 콘솔의 화면에 작업한 내용을 지울 수 있습니다.

 

 

#include <stdlib.h>

void main()
{
   system("cls");
}
반응형
728x90
300x250

[C++] GCC - Windows에 관한 사항

 

이 글은 http://gcc.gnu.org에 들어가서 확인한 글입니다.
읽어보기 바랍니다.


1. GCC.gnu.org에서 확인한 글

 

 

 

그림 1-1) GCC.gnu.org의 글

 

http://gcc.gnu.org/install/specific.html#windows

 

Windows 32bit 기반에선 Cygwin와 MinGw를 이용하면 됩니다.

 


2. 윈도우에서 사용이 가능한 MinGW

 

윈도우에서 사용이 가능한 G++ 컴파일러입니다.

 


그림 1-2) GCC.gnu.org의 글

 

64bit 기반에선 mingw-w64-Runtime을 이용하면 됩니다. 단, 아이테니엄 계열은 윈도우에서 지원하지 않는다고 합니다.

 

 

MinGw(소스포지) - 오픈소스

http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.7.2-1/

반응형
728x90
300x250
[C++] 크로스플렛폼 IDE - CodeBlocks

 

 

리눅스, 윈도우, 등 환경에 관계없이 사용할 수 사용할 수 있는 IDE 도구입니다.

http://www.codeblocks.org/downloads/

 

 

컴파일러는 GCC 이외에도 자주 사용하는 컴파일러를 연결시켜서 사용하면 됩니다.
즉, 다양한 컴파일러 환경에서 이용할 수 있습니다.

 


1. 용어

 

번호

용어(Words)

한글 읽기

의미(Means)

1

IDE
(Integration Development Environment)

인티그레이션 데벨로프맨트 인바이어먼트

통합 개발 환경 도구

 

 

 

 

 

반응형
728x90
300x250

[C++] 문자열 / 입력 버퍼 제거

 

fflush는 MS Visual Studio에서는 지원하는 버퍼 제거 함수이다.

대부분 책에는 fflush를 이용하여 제거하라고 한다.

 

하지만, 리눅스에선 이 명령어를 사용하면 죽는다. (Gcc를 통해 확인해보면 알게 될 것이다.)

 

C언어에서의 표준 버퍼 제거 명령어는 Getchar()를 사용하는 것이다.

C++에서는 cin.sync()를 통해 버퍼를 제거할 수 있다고 한다.

 


1. 참고자료(Reference)

 

1. http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=523010&ref=523010, Accessed by 2014-05-04

2. http://stackoverflow.com/questions/257091/how-do-i-flush-the-cin-buffer, Accessed by 2014-05-04

반응형
728x90
300x250

[C++] ifstream으로 파일 존재 유무 파악


ifstream으로 파일 존재 유무를 파악하는 방법을 소개합니다.

 


1. 소스코드
 

#include <fstream>

 

 

ifstream read;

read.open("읽을 파일");

 

// 파일 존재 파악

if(!read)
{

}


 

반응형
728x90
300x250
[C++] G++로 다수 Header와 Cpp파일 처리하기(Linux)

 

Main.cpp

A.h

A.cpp(또는 inl)

B.h

B.cpp(또는 inl)

C.h

C.cpp(또는 inl)

 

이런 식으로 다수의 파일을 목적프로그램(Object)으로 출력해야합니다.

Header의 경우 컴파일하게 되면, Gch파일로 압축 컴파일됩니다.

크게 걱정하실 필요는 없으며, Main.cpp과 다수의 Cpp의 Object파일을 중점으로 컴파일하면, 이상 없이 처리됩니다.

 

다소 번거롭고 짜증 나지만, 각각의 절차를 MakeFile의 형태로 만들지 않은 이상 수작업으로 진행하셔야 합니다.

 

G++ -c Main.cpp

G++ -c A.h A.cpp

G++ -c B.h B.cpp

G++ -c C.h C.cpp

 

G++ -o Main.o A.o B.o C.o

 

만약 C의 파일이 C.cpp가 아니고 C_inc.h나 inl일 때

Gch로 파일이 생성되면 cpp파일 묶음들만 컴파일하시면 됩니다.

 

G++ -o Main.o A.o B.o
반응형

+ Recent posts