개발개발/c++
c++의 memset(), SetConsoleCursorPosition(), _kbhit(), _getch()
유잉유잉유잉
2024. 12. 19. 11:39
728x90
▶️memset()
- 메모리 초기화할때 자주 사용하는 함수입니다
- 인자 설명
- 1번 인자에 들어가는 메모리 주소로부터
- 3번 인자에 들어가는 메모리 크기만큼
- 2번 인자에 들어가는 값으로 채워줍니다.
- 이때 값은 바이트 단위로 채워주게 됩니다.
int main()
{
const int size = 2;
int arr[size] = {};
memset ( arr, 0, sizeof ( int ) * size );
for (int i = 0 ; i < size ; i++)
std::cout << arr[i] << std::endl; // 0 출력
memset ( arr, 1, sizeof ( int ) * size );
for (int i = 0 ; i < size ; i++)
std::cout << arr[i] << std::endl; // 16843009 출력
memset ( arr, 2, sizeof ( int ) * size );
for (int i = 0 ; i < size ; i++)
std::cout << arr[i] << std::endl; // 33686018 출력
}
위 예시에서
int는 32비트니까 ( 4바이트(int 크기)* 8 비트(1byte는 8비트) )
1로 바꾼다면
0000 0001 0000 0001 0000 0001 0000 0001 (16,843,009)
2로 바꾼다면
0000 0010 0000 0010 0000 0010 0000 0010 (33,686,018)
▶️ SetConsoleCursorPosition()
- 콘솔창에서 좌표를 지정하여 해당 좌표에 출력을 할 수 있게 만들어주는 함수입니다.
- 콘솔창에는 출력 커서가 있습니다. 이 출력 커서의 위치를 지정할 수 있는 함수입니다.
int main()
{
COORD Pos;
Pos.X = 5;
Pos.Y = 3;
SetConsoleCursorPosition( GetStdHandle(STD_OUTPUT_HANDLE), Pos );
std::cout << "ㅁ" << std::endl;
return 0;
}
- COORD : X, Y값을 저장하는 구조체입니다.
▶️ _kbhit()
- 키가 눌려졌는지 확인에 사용하는 함수입니다.
int main()
{
if (_kbhit() > 0 )
std::cout>> "입력완료" >> std::endl;
}
▶️_getch ()
- 문자나 아스키코드를 입력 받아오기 위한 함수로 어떤 키가 눌려졌는지 확인하는 함수입니다.
- 방향키의 경우 224( ex: 펑션키 등등) 가 출력됩니다.
- 한번 더 호출할 경우 방향키의 방향에 따라 다른 키값이 나오게 됩니다
int main()
{
int key = _getch();
std::cout << key << std::endl;
key = _getch();
std::cout << key << std::endl;
return 0;
}
- 방향키 위 : 72, 왼쪽 : 75, 아래 : 80, 오른쪽 77
728x90