Wenn ich das folgende Programm schreibe, gibt es keinen Piepton beim Ausführen des Codes.
#include
int main()
{
printf("\a");
return 0;
}
Kannst du mir sagen, wie man \a
verwendet, um mit einem C-Programm einen Piepton zu erzeugen?
Wenn ich das folgende Programm schreibe, gibt es keinen Piepton beim Ausführen des Codes.
#include
int main()
{
printf("\a");
return 0;
}
Kannst du mir sagen, wie man \a
verwendet, um mit einem C-Programm einen Piepton zu erzeugen?
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
4 Stimmen
Das hängt vom Terminal ab, das davon abhängt, wie du das Programm ausführst. Wenn stdout auf eine Datei umgeleitet wird, gibt es keinen Ton, bis du die Datei anzeigst. Dennoch piepen nicht alle Terminals tatsächlich, wenn sie ein ASCII-BEL-Zeichen empfangen. Ich deaktiviere es persönlich, wenn ich kann. In der Tat ziehe ich auf Maschinen, die bei der Arbeit verwendet werden, normalerweise das Kabel zum PC-Lautsprecher ab und stelle den Rest des Tons stumm, außer wenn ich Kopfhörer eingesteckt habe. Viel Glück dabei, einen Ton aus dieser Konfiguration zu bekommen...
1 Stimmen
Die tragischsten Pieptöne sind diejenigen von Laptops, die in unvorstellbarer Lautstärke über die "normalen" Lautsprecher ausgegeben werden.
3 Stimmen
Übrigens, du musst das Programm von einem Terminal ausführen, da das Piepen beim Drucken von '\a' ein Terminal-Feature ist (nicht C- noch OS-Feature).
0 Stimmen
@Lie Ryan Ich habe es auch im Terminal versucht, aber kein Signalton. Ich habe folgenden Befehl eingegeben printf '\a' im Terminal, aber es ist nichts passiert...
1 Stimmen
@Parixit: Was ist Ihr Betriebssystem und welches Terminalprogramm verwenden Sie?
0 Stimmen
@Lie Ryan Ich verwende Ubuntu 10.04
0 Stimmen
Um die Flushing-Probleme von printf() zu vermeiden, ändern Sie Ihr Programm und versuchen Sie diese Ersetzungen:
#include
write(1,"\a",1);
, die auch in einem Terminal ausgeführt werden müssen.0 Stimmen
Ein häufiger Grund, warum der Piepton nicht funktioniert: Der interne Lautsprecher ist nicht verfügbar oder das Lautsprecher-Kernelmodul ist deaktiviert. Ich mache dies oft auf meinen Desktop-Maschinen mit
modprobe -r pcspkr
, was die Kommunikation mit dem internen Lautsprecher auf dem Mainboard vollständig deaktiviert. Viele Hersteller integrieren diesen Lautsprecher nicht einmal in Laptops.