这个节目听起来很响亮!

时间:2010-08-11 07:17:59

标签: c

我是编程领域的一名全新的学生,所以我无法掌握我书中写的这个程序,我已经关注了几天。该计划是这样的:

#include "stdio.h"

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

这个程序是什么意思?这个节目是否意味着我们可以听到响铃?我听不到任何铃声!

13 个答案:

答案 0 :(得分:47)

ASCII字符7是BELL字符,它在C中表示为\a。当终端输出该字符时,某些终端会发出蜂鸣声;如今,很多人都没有。 (我正在看着你,Ubuntu。)

答案 1 :(得分:20)

ASCIIBAUDOT的灰烬中编纂出来的黑暗时代,terminal是一大块铁,将墨水打在纸上,通常包括纸带打孔和读取器,解释击键,用旋转轮和继电器产生几百波特的异步串行信号。

如果操作员在敲击文本的安慰声中睡着了,它有一个可以响铃的实际铃声。字符编码为八进制的007,十六进制的0x07,或C字符或字符串中的\a常数在收到时响铃。

随着终端变得越来越小并且很少或没有移动部件的实施,物理铃声被蜂鸣器取代。

当要求显示控制字符今天没有很好地标准化时,你的终端模拟器(在Windows中的控制台窗口,xterm或类似的东西)确实是这样做的。它应该发出噪音或闪烁窗户,但你的里程会有所不同。

答案 2 :(得分:10)

查看此维基百科条目:bell character

在C编程语言(1972年创建)中,铃声字符可以放在一个字符串或字符常量中,\ a('a'代表“alert”或“audible”,之所以选择是因为\ b已用于退格)。

答案 3 :(得分:6)

您将听到PC内置扬声器发出的哔声(不是您可能连接的外接扬声器或耳机)。

答案 4 :(得分:5)

实际上,

\a会触发系统报时。它是ASCII BEL字符的转义序列。

答案 5 :(得分:3)

除了你得到的所有答案之外,考虑到你的程序可能不会编译。这是固定版本:

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

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

最重要的变化是系统标题必须用&lt;和&gt;而不是引号。另外,最好知道main()函数总是返回一个int(到操作系统),并且这个int在标题stdlib.h中用两个常量EXIT_SUCCESS和EXIT_FAILURE编码

答案 6 :(得分:2)

\ a是ASCII声音警报(“铃声”)控制字符的C表示。 在旧式串行终端上,输出该字符会产生“嘟嘟”声。您的终端仿真器可能会也可能不会实现此功能。

答案 7 :(得分:2)

尝试更简单的方法:

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

看看会发生什么。

你的BELL char的例子,正如其他人所指出的那样,可能无法在今天的烤面包机上工作^ H ^ H ^ H ^ H ^ H ^ H ^ H ^ H计算机;大多数终端重定向'bell'字符要么被丢弃,要么短暂地闪烁终端。

相信我,你想为夜间编码会议保持这种方式:)

答案 8 :(得分:2)

字符串可以包含与所有其他字符不同的字符。最经常使用的是'\n''\n'字符不会在控制台中打印字符,而是告诉控制台启动新行。这些特殊字符称为不可打印,因为它们在c中没有自己的可见表示,而是必须使用转义序列。

在转义序列"\a"中,a之前的反斜杠告诉编译器a是特殊字符的标识符,并将存储其char值而不是'a'的char值。

'\a'转义序列是可听到的铃声字符,通过print()将此字符提供给控制台应该会发出哔声。有些游戏机不会发出哔哔声。

以下是some个特殊字符,链接来自c ++参考,但大多数应该对c有效。

答案 9 :(得分:1)

您编写的上述程序我已使用GNU GCC编译器在代码块中尝试过它。

工作正常..

如果你想听到哔哔声,你可以用另一种方式尝试它只在Windows中有用!

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

答案 10 :(得分:0)

有趣的是,这似乎适用于没有wWinMain或WinMain入口点的所有版本。 wprintf(L"\a")对于Unicode构建来说听起来不错。 (在这里赢7)。

PC扬声器过去依赖于“speaker.drv”,但是一段时间后,小美女被带走了,取而代之的是beep.sys,现在已移入user mode system sounds agent

还会在here中讨论从命令提示符启用和禁用发言人。

答案 11 :(得分:0)

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

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

当您在输出屏幕上时,此程序会发出铃声

答案 12 :(得分:0)

问题不在于您的 C 程序是否编译完全取决于您的终端设置,通常它们会在 UEFI 存在之前使用笔记本电脑和 PC 随附的 PC 扬声器发出哔哔声

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

我用两台笔记本电脑进行了测试,其中一台是在 UEFI 之前购买的,另一台是在 UEFI 变得普遍之后购买的

我在两个测试(都加载了 echo -e '\a' 模块的 Linux 系统)上运行 pcspkr,并确保 UEFI 存在之前的笔记本电脑发出哔哔声,其他笔记本电脑只是静音