佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 924|回复: 10

C++能做出声音来吗?

[复制链接]
发表于 28-3-2006 11:59 PM | 显示全部楼层 |阅读模式
如题。。。。

可以吗?像di di di的声音。
回复

使用道具 举报


ADVERTISEMENT

发表于 29-3-2006 01:42 AM | 显示全部楼层
在你要的句子后面加 \a 就可以了。。
example"

cout << "ABC\a";
回复

使用道具 举报

 楼主| 发表于 29-3-2006 04:45 PM | 显示全部楼层
>>>>>>能有高低音的吗?
回复

使用道具 举报

发表于 29-3-2006 05:53 PM | 显示全部楼层
原帖由 eugene_koo 于 29-3-2006 04:45 PM 发表
>>>>>>能有高低音的吗?

不能,那是使到你电脑mobo内置的喇叭出声罢了,内置的那个喇叭的声音是很差一下的。
回复

使用道具 举报

发表于 29-3-2006 10:40 PM | 显示全部楼层
我告诉你C++能写出 OPERATING SYSTEM, WARCRAFT3 等用C++ 写的,你相信吗?
回复

使用道具 举报

发表于 29-3-2006 11:44 PM | 显示全部楼层
bit comet 也是c++ 写出来的哦。。
回复

使用道具 举报

Follow Us
发表于 29-3-2006 11:47 PM | 显示全部楼层
原帖由 zuying1985 于 29-3-2006 01:42 AM 发表
在你要的句子后面加 \a 就可以了。。
example"

cout << "ABC\a";

哇!, 真的可以哦。。哈哈,
回复

使用道具 举报

发表于 29-3-2006 11:48 PM | 显示全部楼层
原帖由 Aduka 于 29-3-2006 11:47 PM 发表

哇!, 真的可以哦。。哈哈,

感觉上好像在嘲笑我哦,,,,
回复

使用道具 举报


ADVERTISEMENT

发表于 30-3-2006 02:16 AM | 显示全部楼层
原帖由 zuying1985 于 29-3-2006 11:48 PM 发表

感觉上好像在嘲笑我哦,,,,

没有拉。。。
我也是看了这个贴才知道的, 马上去compile 试试看。。。
谢谢咯。。。
回复

使用道具 举报

发表于 4-4-2006 11:42 PM | 显示全部楼层
如果你用的 operating system 是 ms window,
还有你的 compiler 是 ms visual c++ 6.0,
你可以尝试以下的 function:

Library: <stdlib.h>
Function: _beep(int frequency, int millisecond)

Frequency,控制 system speaker 声音的高低音。
Millisecond,声音的长度。


  1. _beep(440, 2000);
复制代码


以上的 code,会发出一个为 440Hz frequency 的声音。
长度为 2000 milliseconds,即 2 seconds。

当然,如果你要发出 do,re,mi 的话,
你必须知道这些音符的 frequency。
不过,发出来的声音都是 monotone 的。嘻嘻。

举例:


  1. #include <stdlib.h>

  2. #define C  262
  3. #define CS 277
  4. #define D  294
  5. #define DS 311
  6. #define E  330
  7. #define F  349
  8. #define FS 370
  9. #define G  392
  10. #define GS 415
  11. #define A  440
  12. #define AS 466
  13. #define B  494

  14. void main()
  15. {
  16.         _beep(C, 500);
  17.         _beep(D, 500);
  18.         _beep(E, 500);
  19.         _beep(F, 500);
  20.         _beep(G, 500);
  21.         _beep(A, 500);
  22.         _beep(B, 500);
  23.         _beep(C * 2, 500);
  24. }
复制代码


注解:
被 define 的 constants 是音符的 frequency。
当某个音符的 frequency 被乘于 2 时,
你会得到下一个音阶的同样音符。

比如说,C 音的 frequency 是 262。
那么,高一个音阶的 C 就是,262 x 2 = 524。
再高一个音阶的 C 就是,524 x 2 = 1048。

以下的 frequency table 可能可以帮助到你:

Key  Frequency (to the nearest integer)
     Oct1   Oct2   Oct3   Oct4
===  ====   ====   ====   ====
C     262    524   1048   2096
C#    277    554   1108   2216
D     294    588   1176   2352
D#    311    622   1244   2488
E     330    660   1320   2640
F     349    698   1396   2792
F#    370    740   1480   2960
G     392    784   1568   3136
G#    415    830   1660   3320
A     440    880   1760   3520
A#    466    932   1864   3728
B     494    988   1976   3952
回复

使用道具 举报

jeefatt 该用户已被删除
发表于 11-4-2006 05:23 PM | 显示全部楼层
但是为什么我写出来的program只能在dos run de??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 22-9-2024 12:48 PM , Processed in 0.104730 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表