ich hänge einfach fest



  • deine cases schreien doch nach einem : und einem break;



  • So funzt's:

    #include "stdafx.h"
    #include <iostream>
    
    int main()
    
    {
    int arabische_Ziffer = 0;
    char roemische_Ziffer;
    std::cout << "Gib eine roemische Ziffer ein\n";
    std::cin >> roemische_Ziffer; /*zeile 13*/
    
    if ("roemische_Ziffer" == "I") arabische_Ziffer = 1;
    else if ("roemische_Ziffer" == "V") arabische_Ziffer = 5;
    else if ("roemische_Ziffer" == "X") arabische_Ziffer = 10;
    else if ("roemische_Ziffer" == "L") arabische_Ziffer = 50;
    else if ("roemische_Ziffer" == "C") arabische_Ziffer = 100;
    else if ("roemische_Ziffer" == "D") arabische_Ziffer = 500;
    else if ("roemische_Ziffer" == "M") arabische_Ziffer = 1000;
    
    if (arabische_Ziffer == 0) std::cout << "Es wurde keine roemische Ziffer eingegeben!" << std::endl;
    else std::cout << " Zugehörige arabische Ziffer:" << arabische_Ziffer << std::endl;
    } 
    cin.get();
    }
    


  • if ("roemische_Ziffer" == "I") arabische_Ziffer = 1;
    else if ("roemische_Ziffer" == "V") arabische_Ziffer = 5;
    else if ("roemische_Ziffer" == "X") arabische_Ziffer = 10;
    else if ("roemische_Ziffer" == "L") arabische_Ziffer = 50;
    else if ("roemische_Ziffer" == "C") arabische_Ziffer = 100;
    else if ("roemische_Ziffer" == "D") arabische_Ziffer = 500;
    else if ("roemische_Ziffer" == "M") arabische_Ziffer = 1000;
    

    😮

    Und was macht das deiner Meinung nach?



  • JustAnotherNoob schrieb:

    deine cases schreien doch nach einem : und einem break;

    ach sch**** hab nicht aufgepasst, habs schnell dahingeschmissen, während ich was anderes gemacht habe... 🤡

    so habs jetzt mal eingefuegt^^

    switch(roemische_Ziffer)
    {
    case 'I':
        arabische_Ziffer = 1;
        break;
    case 'V':
        arabische_Ziffer = 5;
        break;
    case 'X':
        arabische_Ziffer = 10;
        break;
    case 'L':
        arabische_Ziffer = 50;
        break;
    case 'C':
        arabische_Ziffer = 100;
        break;
    case 'D':
        arabische_Ziffer = 500;
        break;
    case 'M':
        arabische_Ziffer = 1000;
        break;
    }
    

    🤡



  • JustAnotherNoob schrieb:

    deine cases schreien doch nach einem : und einem break;

    Oder gleich std::map<char, int> verwenden, dann kann man sich die Codeduplizierung (x Zuweisungen) sparen...

    Und um es nochmals klarzustellen:

    if ("roemische_Ziffer" == "I")
    

    vergleicht die beiden Strings (bzw. deren Adressen) und ergibt folglich immer false . Variablennamen werden nicht in Anführungszeichen geschrieben.



  • drakon schrieb:

    if ("roemische_Ziffer" == "I") arabische_Ziffer = 1;
    else if ("roemische_Ziffer" == "V") arabische_Ziffer = 5;
    else if ("roemische_Ziffer" == "X") arabische_Ziffer = 10;
    else if ("roemische_Ziffer" == "L") arabische_Ziffer = 50;
    else if ("roemische_Ziffer" == "C") arabische_Ziffer = 100;
    else if ("roemische_Ziffer" == "D") arabische_Ziffer = 500;
    else if ("roemische_Ziffer" == "M") arabische_Ziffer = 1000;
    

    😮

    Und was macht das deiner Meinung nach?

    Immerhin funktioniert dieses Programm sogar unabhängig von den Benutzereingaben - kann man nicht von jedem Programm behaupten (sozusagen der Heilige Gral der stabilen Programmierung) 😉

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Immerhin funktioniert dieses Programm sogar unabhängig von den Benutzereingaben - kann man nicht von jedem Programm behaupten (sozusagen der Heilige Gral der stabilen Programmierung) 😉

    Gruß,

    Simon2.

    :p

    Dann ist aber schon zu viel Arbeit reingesteckt worden. 🙂

    Das hier finde ich besser. Ist gerade noch so überschaubar und man kann noch weniger Fehler machen. 😉

    int main (){}
    


  • Ich habe auch ein Problem:
    ich finde einfach den Fehler nicht... es kommt immer eine Fehlermedung dass versch. Sachen nicht gefunden werden können...

    // Gruss-Void
    #include <iostream>
    using namespace std;
    
    void gruss()
    {
    	cout<<endl;
    	cout<<"Hallo Programmierer!"<<endl;
    	cout<<endl;
    }
    int main()
    {
    	double fahrenheit;
    	double celsius;
    
    	gruss();
    
    	cout<<"Temperatur in Fahrenheit: ";
    	cin<<fahrenheit;
    
    	celsius =(fahrenheit - 32) * 5.0 / 9.0;
    
    	cout<<fahrheit
    		<<" Grad Fahrenheit entsprechen "
    		<<celsius
    		<<" Grad Celsius"<<endl;
    
    	gruss();
    
    	return 0;
    }
    


  • Dann sag mal, was nicht gefunden werden kann.



  • cin<<fahrenheit;
    

    nochmal überdenken...

    Du willst gerade den Wert von "fahrenheit" in die Ausgabe schieben... 😮

    edit: und: (Z.23)

    cout<<fahrheit
    

    Nächstes mal bitte mit Fehler:

    $ g++ test1.cpp -o test1
    test1.cpp:31:11: warning: no newline at end of file
    test1.cpp: In function ‘int main()’:
    test1.cpp:19: error: no match for ‘operator<<’ in ‘std::cin << fahrenheit’
    test1.cpp:23: error: ‘fahrheit’ was not declared in this scope
    


  • if (arabische_Ziffer == 0)

    Unabhängig von Benutzer Eingaben?
    Naja, ich weiss ja nicht.



  • drakon schrieb:

    ...Dann ist aber schon zu viel Arbeit reingesteckt worden. ...

    definitiv!

    hangman schrieb:

    if (arabische_Ziffer == 0)

    Unabhängig von Benutzer Eingaben?
    Naja, ich weiss ja nicht.

    Schau Dir das Programm nochmal genau an ... Welche Ablaufpfade lässt der COmpiler wirklich übrig (mal von exceptions abgesehen) ? 😉

    Gruß,

    Simon2.



  • hi danke für eure antworten hat mit dem switch suprer geklappt. habe nur jetzt wieder ein neues problem. ich würde gerne ein programm starten das ist mein quellcode:

    #include "stdafx.h"
    #include <process.h>
    #include <stdio.h>
    void _spawnl_example(void)
    {
    int result;
    result = _spawnl(P_WAIT,"C:\\Programme\Winamp\winamp.exe", "C:\\Programme\Winamp\winamp.exe", NULL);
    if (result == -1)
    {
    perror("Error from spawnl");
    exit(1);
    }
    }
    int main(void)
    {
    _spawnl_example();
    return 0;
    }

    die fehlermeldung die ich immer bekommen ist diese hier:

    1>------ Erstellen gestartet: Projekt: programm öffnen, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>programm öffnen.cpp
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'W': Nicht erkannte Folge von Escapesequenz
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'w': Nicht erkannte Folge von Escapesequenz
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'W': Nicht erkannte Folge von Escapesequenz
    1>c:\dokumente und einstellungen\maik\eigene dateien\visual studio 2008\projects\programm öffnen\programm öffnen\programm öffnen.cpp(10) : warning C4129: 'w': Nicht erkannte Folge von Escapesequenz
    1>Verknüpfen...
    1>Das Manifest wird eingebettet...
    1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Maik\Eigene Dateien\Visual Studio 2008\Projects\programm öffnen\programm öffnen\Debug\BuildLog.htm" gespeichert.
    1>programm öffnen - 0 Fehler, 4 Warnung(en)
    ========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========

    und wenn ich es dann starte kommt immer:

    Error from spawnl: No such file or directory

    was mach ich da falsch und die andere frage ist kann ich damit auch lieder starten z.B. mp3 dateien oder nur exe ?

    danke für eure antworten

    maik



  • Ein einfaches '\' erkennt der Compiler nicht nur beim ersten Mal (nach dem "C:") nicht, sondern auch bei allen folgenden Malen ...

    Gruß,

    Simon2.

    P.S.: Bei den Fehlermeldungen bezeichnet die Zahl in Klammern die Quellcodezeile, die Du Dir als erstes ansehen solltest. (genauer: ..., in der der Compiler Probleme bekommen hat.)



  • hi danke simon2 aber kannst du mir auch sagen was ich da anderst machen soll weil das ist ja der pfad zur datei. lg maik



  • Maik135 schrieb:

    hi danke simon2 aber kannst du mir auch sagen was ich da anderst machen soll weil das ist ja der pfad zur datei. lg maik

    Du musst statt '\' einfach jedesmal '\' verwenden, wie du es ja auch teilweise getan hast. Google mal nach Escapesequenzen.



  • hi danke funktionier super. hast du auch ne idee wie ich z.b. auch ein leid öffnen kann also eine mp3 datei weil das hier geht ja nur für exe. lg maik



  • Ich bin mir nicht sicher, aber unter Windows müsstest du Dateien die mit einer Anwendung (bei mp3's also dein Player) mit SchellExecuteEx öffnen können.

    Gruß





  • den player hab ich mit _spawnl_ geöffnet ging recht einfach nur wenn ich z.b. eine mp3 datei auf dem desktop habe wenn ich die abspielen will wie mit eine normalen doppelklick nur über c++ wie das geht würde mich interessieren so wie der link hier vor mir nur will ich nicht einen ganzen player programmieren sondern einfach das er die mp3 datei aufmachen und dann normal in winamp oder so wiedergeben.

    gruß maik


Anmelden zum Antworten