Как создать звуковой сигнал с помощью символа "\ a"?

Если я напишу следующую программу, то при запуске кода не будет звукового сигнала.

#include <stdio.h>
int main()
{ 
    printf("\a");
    return 0;
 }

Можете ли вы рассказать мне, как использовать \a для создания звукового сигнала с помощью программы C?

Ответ 1

Единственное, что неправильно (наполовину неправильное) с вашей программой - main подпись.

Чтобы быть портативным на 100%, он должен быть int main(void) или int main(int argc, char **argv) или эквивалентен: int main() не эквивалентен.


И я также напечатал '\n' или сбросил выходной буфер, вместо того, чтобы полагаться на время выполнения, автоматически очищающее все буферы, но ваша программа должна звучать как звонок. Если проблема не в другом месте, не с C.

#include <stdio.h>
int main(void)
{
    printf("\a\n");
    return 0;
}

Ответ 2

Я согласен с @Steve Jessop. Люди будут стараться держать свои компьютеры в тишине.

В Windows: в качестве альтернативы "\ a" вы можете использовать команду WinAPI Beep. Если вы используете Windows 7, это может работать не так, как ожидалось.

Звуковая функция (Windows)

Ответ 3

Если вы используете Windows, версии Windows делают звуковой сигнал очень разными способами. Некоторые из них позволяют это и работают нормально, но некоторые версии Windows этого не делают. В некоторых окнах он работает именно так, если у вас есть внутренний динамик материнской платы. Но некоторые другие окна, он отлично работает без внутреннего динамика материнской платы, прямо со звуковой карты (это было бы неплохо!).

Если вам повезет, и с помощью соответствующей версии Windows будет работать beep/Beep/printf ( "\ a" ) (на внутреннем динамике (если есть) или в лучшем случае через звуковую карту). Но если вы используете другую версию Windows, это не сработает. Если на вашем компьютере все в порядке, ваш друг/член семьи будет молчать, и он/она подумает, что вы написали плохую программу: -D, но не.

Мой совет, что вы должны использовать библиотеку для аудио. Он простой, кросс-платформенный, и он будет всегда работать всегда все компьютеры и т.д. Например, Allegro_v4, Allegro_v5, SDL (Simple DirectMedia Layer) или что-то в этом роде. Эти библиотеки отлично работают с OpenGL/DirectX, и с помощью этих библиотек вы можете загружать изображения, воспроизводить видео и тому подобное. Native OpenGL/GLUT/DirectX не может так поступать.

Ответ 4

Я обычно использую другой способ получить звуковой сигнал, который работает на Windows 7 на 100%.

    int x=7; //7 is beep sound other numbers may show emoji and characters
    printf("%c",x);

Ответ 5

#include<stdio.h>
#include<windows.h>

int main()
{   
    Beep(1000, 1000); /* you can use any number starting from 250, but make sure you use                           it both times


    return 0;

}