C语言中的蜂鸣问题????

#include
int main()
{
int n;
int b=20;
for(n=0;n<21;n++)
{
printf("\a\a");
printf("%d",b-n);
}
getchar();
return 0;
}

书上说\a这个字符可以使电脑发出声音,试了下果然,大约是是1秒钟滴2下,然后我就编了个类似于倒计时的小程序,但发现这根本行不通,数字刷一下出来完了,声音还是一下一下响(估计这个响的声音与输出bel字符是不相符的),而且程序老崩溃。请问这是怎么回事啊?怎么才能做到,响两声后,在输出b的值呢?

你可以试试在 for 循环中增加一个延时,延时的时间大于 Beep 声音的时间

你这加个线程就可以了。

for 循环中增加一个延时,延时的时间大于 Beep 声音的时间,延时的单位是毫秒

windows的话,可以用messagebeep这个功能更强大
http://baike.baidu.com/link?url=--QPnr49j7aVSeQzaa9kG-xWq8D042AffkHsxN1x4terxn0o14mI6GdvXtFsIKXIwpOoZ3dUXlDYwCZsiYrNOq

用两个线程,一个输出字符一个输出声音,然后i你用线程同步来控制两者的输出按你的顺序。

需要使用多线程, 两个线程,一个输出字符一个控制声音,然后 i 用线程同步来控制两者的输出。