Problem mit Mp3-Wiedergabe



  • Hallo,
    ich bin noch recht unerfahren im Programmieren und neu hier im Forum.
    Ich bin gerade dabei ein kleines Programm in C zu schreiben und habe ein Problem.

    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    int main(int argc, char *argv[])
    {
      int passwd;
    
      printf("Gib das Passwort ein:");
      scanf("%d",&passwd);
      fflush(stdin);
      printf("\n");
    
      if(passwd=14)
      {
       printf("Richtig!\n");
      }
    
      if(passwd>14)
      {
       char Kommando[500];
    char Dateiname[]={"C:\\schön.mp3"};
    
    wsprintf(Kommando,"open \"%s\" alias mp3player shareable",Dateiname);
    mciSendString(Kommando,0,0,0);
    mciSendString("set mp3player time format milliseconds",0,0,0);
    mciSendString("play mp3player",0,0,0);
    _sleep(5000);
    mciSendString("pause mp3player",0,0,0);
    _sleep(2000);
    mciSendString("resume mp3player",0,0,0);
    
    system("PAUSE");
    mciSendString("stop mp3player",0,0,0);
    mciSendString("close mp3player",0,0,0);
      }
      system("PAUSE");	
      return 0;
    }
    

    Dieses Programm soll ein Lied abspielen namens schön.mp3 wenn das eingegeben Passwort größer ist als 14. Allerdings kommt dann auch nur "Richtig!".
    Wenn ich den Teil, der das Lied abspielen soll alleine ausführe funktioniert es komischerweise
    Bitte helft mir! 😞


  • Mod

    if(passwd=14)
    

    Das ist kein Vergleich, sonder eine Zuweisung.



  • Und wie sollte ich es dann schreiben, wenn ich will das "Richtig!" nur kommt, wenn die Eingabe 14 ist?



  • if(passwd==14)
    

    Edit: Warum nutzt du die wide-Variante von sprintf? Schau mal auf die Warnungen des Compilers.



  • Ok, klappt jetzt.
    Vielen Dank! 😃



  • DER klassische Anfängerfehler... 😃



  • Wer ihn nicht gemacht hat, hat nie angefangen oder wie? 😃



  • Deshalb schreibt man auch robuster

    if( 14==passwd )
    

    statt

    if( passwd==14 )
    

    um genau diesen Fehler zu vermeiden.


  • Mod

    Also bei mir warnt mich der Compiler. Er tut zwar unschuldig so, als ob ich das absichtlich gemacht hätte, schlägt mir aber vor, zusätzliche Klammern zu setzen 😉 .


Anmelden zum Antworten