programing

이 프로그램은 종을 울립니다!

muds 2023. 6. 15. 22:07
반응형

이 프로그램은 종을 울립니다!

저는 프로그래밍 분야에 새로 온 학생이라 며칠 동안 따라다녔던 이 프로그램을 이해할 수 없습니다.프로그램은 다음과 같습니다.

#include "stdio.h"

main()
{
 printf("\a");
}

이 프로그램의 의미는 무엇입니까?이 프로그램은 우리가 벨소리를 들을 수 있었다는 뜻입니까?벨 소리가 안 들려요!!!

는 ASCII 문 7은 BELL 자며로, C됩표니다로 됩니다.\a일부 단말기에서는 이 문자가 단말기에 출력될 때 삐 소리가 나지만, 요즘은 그렇지 않은 단말기도 많습니다. (Ubuntu, 당신을 보고 있습니다.)

ASCII가 BAUDOT의 잿더미에서 코드화되었던 암흑의 시대로 거슬러 올라가, 터미널은 잉크를 종이에 망치로 두드리는 커다란 철 덩어리였고, 종종 종이 테이프 펀치와 판독기를 포함하고, 키 스트로크를 해석하여 회전하는 휠과 릴레이가 있는 수백 보의 비동기 시리얼 신호를 생성했습니다.

작업자가 텍스트를 두드리는 소리에 잠이 들 경우 실제 벨이 울릴 수 있습니다.또는 은 007, 0x07(16진수)입니다.\aC 문자 또는 문자열 상수로 수신 시 벨을 울립니다.

터미널이 점점 작아지고 움직이는 부품이 거의 없거나 전혀 없는 상태로 구현됨에 따라 물리적 벨은 삐삐로 대체되었습니다.

터미널 에뮬레이터(Windows의 콘솔 창, xterm 또는 Unix의 유사한 것)가 제어 문자를 표시하라는 메시지를 받았을 때 수행하는 작업이 정확히 오늘날 제대로 표준화되지 않았습니다.소음이 나거나 창문이 번쩍여야 하는데 주행거리가 달라집니다.

다음 위키백과 항목을 보십시오: 벨 문자:

C 프로그래밍 언어(1972년 생성)에서 벨 문자는 \a(a'는 "경고" 또는 "청각 가능"을 의미하며 \b가 이미 백스페이스에 사용되었기 때문에 선택됨)와 함께 문자열 또는 문자 상수에 배치될 수 있습니다.

\a실제로 시스템 차임벨을 트리거합니다.ASCII II의 탈출 순서입니다BEL성격.

PC의 내장 스피커에서 삐 소리가 들립니다(연결했을 수 있는 외장 스피커 또는 헤드폰이 아님).

문자열에는 다른 모든 문자와 다르게 처리되는 문자가 포함될 수 있습니다.인 것은 자사명는것은시인적되용가주입니다.'\n'.'\n'문자는 콘솔에서 문자를 인쇄하지 않고 콘솔에 새 줄을 시작하도록 지시합니다.이러한 특수 문자는 c에 표시되는 고유한 표현이 없고 대신 이스케이프 시퀀스를 사용해야 하므로 인쇄 불가능이라고 합니다.

시퀀스에서"\a"이며 앞의 백시컴가러에의 .'a'.

'\a'이스케이프 시퀀스는 가청 벨 문자이며, 인쇄를 통해 이 문자를 콘솔에 전달하면 삐 소리가 발생합니다.일부 콘솔에서 신호음이 울리지 않습니다.

여기에 몇 가지 특수 문자가 있습니다. 링크는 c++ 참조에서 가져온 것이지만 대부분 c에 대해 유효해야 합니다.

\a는 ASCII 청각 경보("벨") 제어 문자의 C 표현입니다.구식 시리얼 단말기에서 그 캐릭터를 출력하면 "삑" 소리가 납니다.터미널 에뮬레이터가 이 기능을 구현할 수도 있고 구현하지 않을 수도 있습니다.

모든 답변 외에도 프로그램이 컴파일되지 않을 수 있다는 점을 고려하십시오.다음은 고정 버전입니다.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("\a");
    return EXIT_SUCCESS;
}

가장 중요한 변경 사항은 시스템 헤더를 따옴표 대신 < 및 >로 둘러싸야 한다는 것입니다.또한 main() 함수는 항상 int를 (운영 체제에) 반환하고, 이 int는 두 상수 EXIT_SUCCESS 및 EXIT_FAILURE로 코드화되어 stdlib.h 헤더에 있습니다.

좀 더 간단한 방법을 사용해 보십시오.

printf("hello\tworld");
printf("hello\nworld");

무슨 일이 일어나는지 보세요.

다른 사람들이 지적했듯이, 벨 차를 사용한 당신의 예는 아마도 오늘의 토스터에서 작동하지 않을 것입니다.^H^H^H^H^H^H^H^H 컴퓨터; 대부분의 단말기는 '벨' 문자를 폐기하거나 단말기를 짧게 플래시하도록 리디렉션합니다.

그리고 저를 믿으세요, 당신은 야간 코딩 세션을 위해 그것을 그렇게 유지하고 싶어합니다 :)

당신이 작성한 위의 프로그램은 GNU GCC 컴파일러를 사용하여 코드 블록에서 시도했습니다.

잘 작동하고 있었습니다.

삐 소리를 듣고 싶다면 다른 방법으로 시도해 볼 수 있습니다. Windows에서만 유용합니다!

#include<stdio.h>
#include<windows.h>
main()
{
   Beep(600,600); /* you have to enter both the values whatever you want
}

wWinMain 또는 WinMain 진입점이 없는 모든 빌드에서 이 기능이 작동합니다. wprintf(L"\a")유니코드 빌드에 적합합니다. (여기서는 Win 7).

PC 스피커는 "speaker.drv"에 의존했지만, 그 작은 아름다움은 얼마 전에 사라지고 삐 소리로 대체되었습니다.이제 사용자 모드 시스템으로 이동된 sys는 에이전트로 들립니다.

여기에서는 명령 프롬프트에서 스피커를 활성화하거나 비활성화하는 방법에 대해서도 설명합니다.

#include<stdio.h>
int main()
{

    int i = 263;
    putchar(i);  // or you can directly use putchar(263);
    return 0;
}

이 프로그램은 사용자가 출력 화면에 있는 동안 벨 소리를 발생시킵니다.

문제는 당신의 C 프로그램이 완전히 당신의 터미널 설정에 따라 컴파일되는지 여부에 관한 것이 아닙니다. 보통 UEFI가 존재하기 전에 노트북과 PC와 함께 제공되는 PC 스피커를 사용하여 삐 소리를 냅니다.

https://en.wikipedia.org/wiki/PC_speaker

노트북 2대를 사용하여 테스트했습니다. 하나는 UEFI 이전에 구입한 것이고 다른 하나는 UEFI 이후에 구입한 것입니다.

아이런echo -e '\a'두 테스트 모두에서(두 리눅스 시스템 모두에서)pcspkr모듈이 로드됨). UEFI가 존재하기 전의 노트북이 삐 소리를 내고 있는지 확인합니다.

언급URL : https://stackoverflow.com/questions/3456138/this-program-sounds-the-bell

반응형