mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Thursday, June 01, 2006

C언어] printf() 함수로, PC스피커에서, 비프음(Beep; 삑 하는 소리) 내기


옛날의 프로그램들은, 심각한 에러가 발생했을 때, PC스피커로 하는 소리를 내었습니다. 이것을 비프음이라고 합니다.

음악용 스피커는 비상시에 작동하지 않을 가능성이 높기 때문에, 최악의 경우에도 잘 작동하는 PC스피커로 에러를 알리는 것입니다. 물론 옛날에는 음악용 스피커나 사운드카드가 없는 PC도 아주 많았습니다. 사무용 PC는 대부분 그랬습니다.



비프음 내기



하드웨어를 직접 제어할 필요는 없습니다. 십육진수로 07 에 해당하는 아스키 문자를, 표준출력으로, 쉽게 말해서 '명령 프롬프트 화면'으로 출력하면 삑 하는 비프음이 나게 됩니다.

C언어에서는, 십육진수로 07 에 해당하는 아스키 문자를 \a 라고 정의해 놓았습니다.

따라서 printf() 함수나 puts() 함수 등으로 \a 를 화면에 출력하면 삑 하는 소리가 나게 됩니다. 그러나 소리만 나고 화면에는 아무것도 출력되지 않습니다. '소리 문자'인 것입니다.

다만 puts() 함수는 개행문자인 \n을 자동으로 붙이기 때문에, 삑 소리만 내려는 경우에는 printf() 함수가 좋겠지요.


#include <stdio.h>


void main(void) {

  printf("\a");

}



위의 코드를 beep.c 등의 이름으로 저장하고 C컴파일러로 컴파일하면 beep.exe 라는 파일이 만들어집니다. 이제 명령 프롬프트 화면에서 beep 라고 치면 삑 소리가 납니다.





beep() 함수를 따로 만들어서 분리하려면 다음과 같이 하면 됩니다:

#include <stdio.h>

void beep(void);


void main(void) {
  beep();
}


void beep(void) {
  printf("\a");
}





그렇지만 비프음은 되도록 사용하지 않는 것이 좋습니다. 사용자가 깜짝깜짝 놀라게 되고 스트레스가 쌓이게 됩니다: [리눅스/Linux] 레드햇 9.0에서, 삑삑거리는 비프음(Beep) 끄기




관련 게시물: 배치 파일에서, PC스피커로, 비프음(Beep; 삑 하는 소리) 내기




tag: cpp
C언어 | C/C++ (Visual C++)

2 Comments:
At March 30, 2016 at 11:03 AM, Blogger acornriver said...

int 대신에 void를 이용해도 돼는건가요?

 
At March 30, 2016 at 11:17 AM, Blogger mwultong said...

위의 소스의 함수는 아무것도 반환하지 않고, 아무런 인수도 입력받지 않기에 void 를 사용했습니다. int 반환값이 있을 경우에만 int 를 사용합니다.

 

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top