我是编程领域的一名全新的学生,所以我无法掌握我书中写的这个程序,我已经关注了几天。该计划是这样的:
#include "stdio.h"
main()
{
printf("\a");
}
这个程序是什么意思?这个节目是否意味着我们可以听到响铃?我听不到任何铃声!
答案 0 :(得分:47)
ASCII字符7是BELL字符,它在C中表示为\a
。当终端输出该字符时,某些终端会发出蜂鸣声;如今,很多人都没有。 (我正在看着你,Ubuntu。)
答案 1 :(得分:20)
当ASCII从BAUDOT的灰烬中编纂出来的黑暗时代,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 存在之前的笔记本电脑发出哔哔声,其他笔记本电脑只是静音