用c++; 怎样用C++实现硬件的哔哔声?
谢谢这里有一个方法:用c++; 怎样用C++实现硬件的哔哔声?,c++,C++,谢谢这里有一个方法: cout << '\a'; cout最简单的方法可能只是打印一个^G ascii贝尔std::cout打印特殊字符ascii贝尔(代码7) std::cout << '\7'; cout如果您使用的是Windows操作系统,则有一个名为Beep()的函数。 如果您不想在windows中使用Beep(),可以执行以下操作: echo "^G" 来源:ASCII贝尔字符可能就是您要查找的字符。表中的数字7。有一些特定于操作系统的蜂鸣声例程 在类U
cout << '\a';
cout最简单的方法可能只是打印一个^G ascii贝尔std::cout打印特殊字符ascii贝尔
(代码7)
std::cout << '\7';
cout如果您使用的是Windows操作系统,则有一个名为Beep()的函数。
如果您不想在windows中使用Beep()
,可以执行以下操作:
echo "^G"
来源:ASCII贝尔字符可能就是您要查找的字符。表中的数字7。有一些特定于操作系统的蜂鸣声例程
- 在类Unix操作系统上,请尝试。这可能比像其他人所建议的那样编写
'\a'
更具可移植性,尽管对于大多数终端仿真器来说,这可能是可行的
- 在某些BSD中,存在一个。读取驱动程序源代码时,
SPKRTONE
ioctl似乎与原始硬件接口相对应,但也似乎有一种围绕write()
-ing字符串构建的高级语言,如手册页所述
- 看起来Linux有一个类似的驱动程序(例如,请参阅;如果向下滚动一点,上面还有一些示例代码)
- 在Windows中有一个名为的函数
<代码> CUT> P>在C或C++中,包括STDIO。
char d=(char)(7);
printf("%c\n",d);
(char)7被称为钟形字符。\include
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
int main()
{
Beep(1568, 200);
Beep(1568, 200);
Beep(1568, 200);
Beep(1245, 1000);
Beep(1397, 200);
Beep(1397, 200);
Beep(1397, 200);
Beep(1175, 1000);
cout<<endl;
_getch()
return 0
}
#包括
#包括
使用名称空间std;
int main()
{
嘟嘟声(1568200);
嘟嘟声(1568200);
嘟嘟声(1568200);
嘟嘟声(12451000);
嘟嘟声(1397200);
嘟嘟声(1397200);
嘟嘟声(1397200);
嘟嘟声(11751000);
cout您可以使用条件编译:
#ifdef WINDOWS
#include <Windows.h>
void beep() {
Beep(440, 1000);
}
#elif LINUX
#include <stdio.h>
void beep() {
system("echo -e "\007" >/dev/tty10");
}
#else
#include <stdio.h>
void beep() {
cout << "\a" << flush;
}
#endif
#ifdef窗口
#包括
无效嘟嘟声(){
嘟嘟声(4401000);
}
#eliflinux
#包括
无效嘟嘟声(){
系统(“echo-e”\007“>/dev/tty10”);
}
#否则
#包括
无效嘟嘟声(){
我在这里尝试了很多东西,没有一个能在我的Ubuntu虚拟机上工作
下面是一个快速破解(信用卡):
#包括
int main(){
系统(“(扬声器测试-t正弦-f 1000)&pid=$!;睡眠1.0s;杀死-9$pid”);
}
它基本上使用系统的扬声器测试来产生声音。但这不会很快终止,因此命令会在后台运行它(&
部分),然后捕获它的进程id(pid=$1
部分),休眠一定量,您可以更改(休眠1.0s
部分)然后它终止该进程(kill-9$pid部分)
<代码>正弦>代码>是声音产生的。你可以把它改成<代码>粉红< /C>或到<代码> wav < /C>文件。< /P>这不是标准的C++。我们甚至不知道他是否使用Windows。操作系统从来没有被提到过,或者TAGSIM不是C++程序员,C主要是认为资源会有帮助,不认为它值得一。投反对票,但那是你的特权+1考虑到这个问题“甚至没有错”,这是一个很好的答案。对于最后一个,当我输入^
和G
时,这不起作用。它只在按Ctrl+G
时起作用。即使字符串在输入时看起来相同,但它们不同,并且打印方式也不同。stdout
可能?在命名空间std
中没有名为out
的对象当然,如果你使用的是断掉的终端软件,所有的赌注都被关闭了,但是Win32控制台子系统和大多数XTALLE克隆都是正确的。“Ben Voigt:如果我错了,请纠正我,但是C++标准只指定‘a’代表ASCII BEL字符,但C++从来没有指定过。当把这样的字符发送到标准输出时,程序的行为应该是什么。ASCII BEL='\a'部分是非常可移植的,正如你所说,但是哔哔声部分是完全未定义的行为。@Ben:就我而言,如果终端软件没有关闭铃声的方法,它就会被破坏。@Steve:我同意,但我没有读这篇文章estion是“当用户明确关闭声音时,如何发出嘟嘟声?”这来自扬声器。如何使内部主板发出嘟嘟声而不是扬声器?这取决于操作系统。旧的MS-DOS会触发主板声音。如果您运行的是最新的操作系统,我希望内核会触发扬声器的音频信号,而不是使用硬件。这不起作用,我尝试了全音量e、 我的g++版本是g++(Ubuntu9.3.0-10ubuntu2)9.3.0
最好让LINUX部分也能灵活调整频率和时间,使用“system”(“beep-f 5000-l 50-r 2”)(参见)toot是一个跨平台的C文件,它试图调用多个声音发生器来产生蜂鸣音。
cout << "\a";
char d=(char)(7);
printf("%c\n",d);
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
int main()
{
Beep(1568, 200);
Beep(1568, 200);
Beep(1568, 200);
Beep(1245, 1000);
Beep(1397, 200);
Beep(1397, 200);
Beep(1397, 200);
Beep(1175, 1000);
cout<<endl;
_getch()
return 0
}
#ifdef WINDOWS
#include <Windows.h>
void beep() {
Beep(440, 1000);
}
#elif LINUX
#include <stdio.h>
void beep() {
system("echo -e "\007" >/dev/tty10");
}
#else
#include <stdio.h>
void beep() {
cout << "\a" << flush;
}
#endif
#include <iostream>
int main() {
system("(speaker-test -t sine -f 1000)& pid=$!; sleep 1.0s; kill -9 $pid");
}