2010-10-02 7 views
10

यदि मैं निम्नलिखित प्रोग्राम लिखता हूं, तो कोड चलाने पर कोई बीप ध्वनि नहीं है।" a" बचने वाले चरित्र का उपयोग करके बीप ध्वनि का उत्पादन कैसे करें?

#include <stdio.h> 
int main() 
{ 
    printf("\a"); 
    return 0; 
} 

क्या आप मुझे बता सकते हैं कि कैसे सी प्रोग्राम का उपयोग बीप ध्वनि उत्पादन के लिए \a उपयोग करने के लिए?

+3

कि टर्मिनल है, जो निर्भर करता है कि आप प्रोग्राम चला रहे हैं पर निर्भर है पर 100% काम करता है पाने के लिए एक और तरीका है का उपयोग करें। यदि stdout फ़ाइल पर रीडायरेक्ट किया गया है, तब तक कोई बीप नहीं जब तक आप फ़ाइल प्रदर्शित नहीं करते। फिर भी, जब वे एसीआईआई बीईएल चरित्र प्राप्त करते हैं तो सभी टर्मिनलों वास्तव में बीप नहीं होते हैं। यदि मैं कर सकता हूं तो मैं इसे अक्षम कर सकता हूं। काम पर प्रयुक्त मशीनों पर उस मामले के लिए, मैं आम तौर पर पीसी को आंतरिक स्पीकर में केबल अनप्लग करता हूं, और जब मैं हेडफ़ोन प्लग इन करता हूं, तब बाकी ध्वनि को म्यूट कर देता हूं। शुभकामनाएं उसमें से एक बीप प्राप्त कर रही हैं ... –

+1

सबसे दुखद बीप लैपटॉप से ​​हैं, जो "सामान्य" वक्ताओं के माध्यम से अविश्वसनीय मात्रा में उत्सर्जित होते हैं। –

+2

बीटीडब्ल्यू, आपको * टर्मिनल से प्रोग्राम चलाया जाना चाहिए, क्योंकि '\ a' प्रिंटिंग करते समय बीपिंग टर्मिनल फीचर है (सी और न ही ओएस फीचर)। –

उत्तर

3

एकमात्र चीज गलत है (आधा गलत) आपके प्रोग्राम के साथ main हस्ताक्षर है।

100% पोर्टेबल होने के लिए यह int main(void) या int main(int argc, char **argv) या समकक्ष होना चाहिए: int main() बराबर नहीं है।


और मैं एक '\n' भी प्रिंट चाहते हैं, या बल्कि क्रम स्वचालित रूप से मेरे लिए सब बफ़र्स निस्तब्धता पर भरोसा करने की बजाय उत्पादन बफर फ्लश, लेकिन अपने कार्यक्रम घंटी ध्वनि चाहिए क्योंकि यह है। यदि यह समस्या कहीं और नहीं है, C के साथ नहीं।

#include <stdio.h> 
int main(void) 
{ 
    printf("\a\n"); 
    return 0; 
} 
+0

आप कम से कम स्वीकार कर सकते हैं कि सी 99 मौजूद है, भले ही आपको लगता है कि प्रश्नकर्ता इसका उपयोग नहीं कर रहा है ;-) –

+0

यहां तक ​​कि 'सी 99' में, 'int main()' 2 प्रकाशित परिभाषाओं में से एक के बराबर नहीं है। – pmg

+0

यह एक परिभाषा में है। यह अन्य घोषणाओं में नहीं है। 6.7.5.3/10 और/14। दोनों का मतलब है "कोई पैरामीटर नहीं", और 5.1.2.2.1/1 निर्दिष्ट करता है कि 'पैरामीटर' के साथ कोई मुख्य पैरामीटर ठीक नहीं है। यह केवल उदाहरण कोड के रूप में ऐसा करने के दो तरीकों में से एक देता है, लेकिन मुझे लगता है कि * यह नहीं है कि इसका मतलब यह है कि ऐसा करने का दूसरा तरीका अस्वीकार्य है। –

1

मैं @ स्टेव जेसॉप से ​​सहमत हूं। लोग अपने कंप्यूटर को शांत रखने के लिए बड़ी लंबाई में जाएंगे।

विंडोज़ में: "\ a" के विकल्प के रूप में, आप WinAPI के बीप कमांड का उपयोग कर सकते हैं। यदि आप विंडोज 7 का उपयोग कर रहे हैं, तो यह उम्मीद के अनुसार काम नहीं कर सकता है।

Beep Function (Windows)

-3
#include<stdio.h> 
#include<windows.h> 

int main() 
{ 
    Beep(1000, 1000); /* you can use any number starting from 250, but make sure you use       it both times 


    return 0; 

} 
+3

1. कोड-केवल उत्तर खराब हैं; 2. वह लिनक्स पर है; 3. वह स्पष्ट रूप से 'एक का उपयोग कर' कहता है – Kevin

0

आप Windows का उपयोग कर रहे हैं, विंडोज संस्करणों बहुत अलग तरीके बीप बना रही है। उनमें से कुछ इसे सक्षम करते हैं और ठीक काम करते हैं, लेकिन कुछ विंडोज संस्करण नहीं हैं। कुछ खिड़कियों में, यह केवल उस मामले में काम करता है, यदि आपके पास आंतरिक मदरबोर्ड स्पीकर है। लेकिन कुछ अन्य खिड़कियां, यह ध्वनि मदरबोर्ड से सीधे आंतरिक मदरबोर्ड स्पीकर के बिना ठीक काम करती है (यह अच्छा होगा!)।

यदि आप भाग्यशाली हैं, और उचित विंडोज़ संस्करण का उपयोग करते हैं, तो बीप/बीप/प्रिंटफ ("\ a") काम करेगा (आंतरिक स्पीकर (यदि आपके पास है), या साउंडकार्ड के माध्यम से सबसे अच्छा मामला)। लेकिन यदि आप एक अन्य विंडोज संस्करण का उपयोग कर रहे हैं, तो यह काम नहीं करेगा। अगर आपके कंप्यूटर में यह ठीक है, तो आपके मित्र/परिवार के सदस्य का पीसी चुप हो जाएगा, और वह सोचेंगे कि आपने एक बुरा कार्यक्रम लिखा है :- डी लेकिन नहीं।

मेरी सलाह है कि आपको ऑडियो के लिए लाइब्रेरी का उपयोग करना चाहिए। यह सरल, क्रॉस-प्लेटफ़ॉर्म है, और यह हमेशा सभी कंप्यूटरों आदि के लिए हमेशा काम करेगा। उदाहरण के लिए, Allegro_v4, Allegro_v5, SDL (सरल DirectMedia Layer), या ऐसा कुछ। ये लाइब्रेरी ओपनजीएल/डायरेक्टएक्स के साथ ठीक काम करती हैं, और इन पुस्तकालयों के साथ, आप छवियों को लोड कर सकते हैं, वीडियो चला सकते हैं, और ऐसी चीजें। मूल ओपनजीएल/जीएलयूटी/डायरेक्टएक्स ऐसी चीजें नहीं कर सकता है।

-2

मैं आमतौर पर बीप ध्वनि यह विंडोज़ 7.

int x=7; //7 is beep sound other numbers may show emoji and characters 
    printf("%c",x); 
संबंधित मुद्दे