2011-10-28 15 views
5

मैंने विंडोज़ में एक प्रोग्राम लिखा है जो स्टडीन पर इसे भेजे गए बाइनरी ऑडियो चलाएगा, मैंने इसे एप्ले (लिनक्स प्रोग्राम की तरह) कहा था। मैं तो एक अलग कार्यक्रम में लिखा था के रूप में किसी कारण सेबाइनरी मोड में विंडोज पाइप

FILE * f = popen("aplay.exe", "wb"); 
FILE * song = fopen("C:/Users/Ray/Dropbox/DJ Automica 2/Debug/raymonster 5.wav", "rb"); 
while(1) 
{ 
    byte buff[4096]; 
    fread(buff, 4, 1024, song); 
    fwrite(buff, 4, 1024, f); 
} 

इस प्रकार है, पाइप क्योंकि ऑडियो सभी में गड़बड़ बाहर आ रहा है, द्विआधारी मोड में काम करने लगता है। अगर मैं अपने आप को टेक्स्ट मोड में तरंग फ़ाइल खोलने के लिए बदलता हूं तो यह पाइप के माध्यम से ऐसा करता है, अगर मैं बाइनरी मोड में तरंग फ़ाइल खोलता हूं तो यह पूरी तरह से खेलता है। क्या किसी को पता है कि मैं इसे कैसे ठीक कर सकता हूँ?

उत्तर

4

आप

#include <fcntl.h> 
#include <io.h> 

आप

_setmode(_fileno(stdin), _O_BINARY); 
साथ मोड बदल सकते हैं हेडर फाइल शामिल करते हैं
संबंधित मुद्दे