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
[Windows 2008] iSCSI 저장소 구축

 

아래의 영상은 Microsoft WIndows 2008에서 iSCSI 저장소를 구축하는 방법에 대해서 잘 소개하고 있습니다.

 


1. iSCSI 저장소 구축 / 시연 영상

 

 

영상 1-1) How to Create ISCSI Storage using Windows Server 2008 R2 CpocLab Videos, TimeNet CpocLab

 

인터넷 기반의 SCSI(Internet SCSI)라는 개념의 Storage를 구축하는 방법입니다.

iSCSI는 말 그대로 인터넷 상에서 스토레지를 운영하는 것입니다.

 

예를 들면, 동작 다이어그램을 아래와 같습니다.

 

 

Fig 1-2) iSCSI 구성의 예

 

[첨부(Attachment)]

diagram.7z

 


2. 실제 사용의 예

 

외부에 나갔을 때에도 마치 실제 하드디스크를 부착한 것처럼 사용할 수도 있습니다.

또 디스크레스(Diskless, 하드 없는 시스템)에서도 가능합니다.

반응형
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)
{

}


 

반응형

+ Recent posts