Wie produzieren beep sound mit "\" als escape-Zeichen?
Wenn ich Schreibe das folgende Programm gibt es dann keinen Piepton auf den code ausgeführt wird.
#include <stdio.h>
int main()
{
printf("\a");
return 0;
}
Können Sie mir sagen, wie zu verwenden \a
für die Herstellung von beep sound mit C-Programm ?
Das ist bis zu dem terminal, das hängt davon ab, wie Sie das Programm ausführen. Wenn stdout wird umgeleitet in eine Datei, kein Signalton, bis Sie die Datei anzuzeigen. Auch so, nicht alle terminals eigentlich PIEPEN, wenn Sie erhalten eine ascii-BEL-Zeichen. Ich deaktivieren, wenn ich kann. Für diese Angelegenheit, die auf Maschinen eingesetzt, bei der Arbeit, ich in der Regel ziehen Sie das Kabel an den PC internen Lautsprecher und mute den rest des sounds, außer wenn ich Kopfhörer eingesteckt. Viel Glück bekommen einen Piepton aus, dass...
Die meisten tragischen Pieptöne sind diejenigen von laptops, die ausgegeben werden, ad unglaubliche Lautstärke, die durch die "normalen" Lautsprecher.
btw, du muss führen Sie das Programm aus einem terminal, da das PIEPEN beim drucken von '\a' ist eine terminal-Funktion (nicht C noch OS-feature).
Ryan ich hab auch schon versucht es im terminal aber kein piep Ton.Ich tippte Sie den folgenden Befehl printf '\a' auf dem terminal, aber nichts passiert...
was ist dein Betriebssystem, und welche Terminal-Programm verwenden Sie?
Die meisten tragischen Pieptöne sind diejenigen von laptops, die ausgegeben werden, ad unglaubliche Lautstärke, die durch die "normalen" Lautsprecher.
btw, du muss führen Sie das Programm aus einem terminal, da das PIEPEN beim drucken von '\a' ist eine terminal-Funktion (nicht C noch OS-feature).
Ryan ich hab auch schon versucht es im terminal aber kein piep Ton.Ich tippte Sie den folgenden Befehl printf '\a' auf dem terminal, aber nichts passiert...
was ist dein Betriebssystem, und welche Terminal-Programm verwenden Sie?
InformationsquelleAutor Parikshita | 2010-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das einzige, was falsch ist (die Hälfte falsch) mit Ihrem Programm
main
Signatur.100% portable sollte es sein
int main(void)
oderint main(int argc, char **argv)
oder äquivalent:int main()
ist nicht gleichwertig.Und ich würd drucken
'\n'
auch, oder Spülen Sie den Puffer für die Ausgabe anstatt auf die Laufzeit Spülung alle Puffer, die für mich automatisch, aber Ihr Programm sollte der Klang der Glocke so, wie es ist. Wenn es nicht das problem ist woanders, nicht mitC
.Auch in
C99
,int main()
ist nicht äquivalent zu einer der 2 veröffentlichten Definitionen.Es ist eine definition. Es ist nicht in anderen Erklärungen. 6.7.5.3/10 und /14. Sie beide bedeuten "keine Parameter", und 5.1.2.2.1/1 gibt an, dass
main
ohne Parameter ist OK. Es gibt nur eine der beiden Möglichkeiten zu tun, das als Beispiel-code, aber ich bin nichtIch lese den Standard auf die gleiche Weise tun, aber der text in meiner C89 Referenz ist die gleiche. Ich habe ein "Bauchgefühl" sind wir irgendwo etwas fehlt ... aber ich bin nicht das Gefühl, wie die Interpretation Standardese jetzt. Jedenfalls besser, verwenden Sie eine der 2 dokumentierten Definitionen egal was 🙂
Angesichts
int main(void) { /* ... */ }
einen rekursiven Aufrufmain(42)
ist eine constraint-Verletzung. Angesichtsint main() { /* ... */ }
es nicht, aber es hat ein nicht definiertes Verhalten. Ich würde sagen, dass Sie nicht gleichwertig sind. Auf der anderen Seite, wennint main() { /* ... */ }
ungültig ist, dann ist es nicht möglich, schreiben Sie eine parameterlose Hauptprogramm, das gilt in beiden pre-ANSI und ANSI-C, die ich bin sicher, dass war nicht die Absicht. In der Praxis habe ich noch nie gehört von einem C-compiler, der ablehnt oder sonst mishandlesint main()
- aber ich immer noch lieberint main(void)
.InformationsquelleAutor pmg
Stimme ich mit @Steve Jessop. Menschen gehen auf große Längen, um Ihre Computer ruhig.
In Windows: Als alternative zu "\a", Sie könnte verwenden WinAPI - Beep Befehl. Wenn Sie Windows 7 verwenden, dies funktioniert möglicherweise nicht wie erwartet.
Signalton-Funktion (Windows)
InformationsquelleAutor Edward Leno
Wenn Sie mit Windows, die Windows-Versionen machen beep sehr unterschiedlich. Einige von Ihnen aktivieren, und arbeiten gut, aber bei einigen windows-Versionen nicht. In manchen Fenstern funktioniert es, dass Fall, wenn Sie einen internen Mainboard-Lautsprecher. Aber einige andere windows, es funktioniert gut, ohne interne motherboard Lautsprecher, der direkt von der Soundkarte (das wäre schön!).
Wenn Sie Glück haben, und mit der entsprechenden windows-version, beep/Beep/printf("\a"), der Arbeit (auf dem internen Lautsprecher (wenn du hast), oder im besten Fall über die Soundkarte). Aber wenn Sie eine andere windows-version, wird es nicht funktionieren. Wenn in Ihrem computer, es ist okay, Ihr Freund /Familienmitglied den pc wird leise, und er/Sie wird denken, dass Sie schrieb ein schlechtes Programm 😀 aber nicht.
Mein Rat, sollten Sie eine Bibliothek für audio. Es ist ganz einfach, cross-Plattform, und es arbeiten immer alle Zeiten, alle Computer etc. Zum Beispiel, Allegro_v4, Allegro_v5, SDL (Simple DirectMedia Layer), oder etwas wie das. Diese librarys funktioniert gut mit OpenGL /DirectX, und mit diesen Bibliotheken können Sie das laden von Bildern, Abspielen von videos, und Dinge wie, dass. Native OpenGL /GLUT /DirectX kann so etwas nicht machen.
InformationsquelleAutor user2654137
Bitte Liste dein Betriebssystem, wie haben Sie das ausführen von code, und wenn Ihr computer hat einen Piepser.
Wenn Sie Windows verwenden, vielleicht ist dieser Q&A Wie man einen Beep-sound in C auf Windows? würde Ihnen helfen.
Wenn Sie verwenden ein GUI-desktop-Linux-Distribution, terminal-emulator wie gnome-terminal oder xfce4-terminal haben eine Einstellung die Glocke zu überprüfen. Dann, stellen Sie sicher, dass Ihr Lautsprecher funktioniert.
Den code unten funktioniert gut für mich:
Durch die Art und Weise, die Ihr code ist nicht das problem.
InformationsquelleAutor qht
normalerweise verwende ich einen anderen Weg, um den Signalton funktioniert es zu 100% auf windows 7.
InformationsquelleAutor user332422
InformationsquelleAutor Lilanka Kushan Udawatta