Unbekannter Fehler - Anfänger sucht Hilfe :)



  • Nowaepon schrieb:

    Ich habe das jetzt korrigiert, bekomme jedoch trotzdem noch diese Fehlermeldung:
    fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.

    Und welches Symbol ist das? Das gibt der Linker auch noch aus.

    Nowaepon schrieb:

    Auch wenn scanf_s nicht wirklich sicherer ist als scanf, so kann ich letzteres nunmal leider nicht benutzen. 😞

    Warum nicht?
    Was du machen kannst steht doch da:

    Compiler schrieb:

    To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

    Du kannst das _CRT_SECURE_NO_WARNINGS in den Projektoptionen definieren

    Sonst frag Google nach C4996 _CRT_SECURE_NO_WARNINGS



  • Das Symbol gibt er leider nicht aus.
    Hier ist der gesamte Inhalt der Fehlerkonsole:

    1>------ Erstellen gestartet: Projekt: Test1, Konfiguration: Debug Win32 ------
    1> Taschenrechner.c
    1>Test.obj : error LNK2005: _main ist bereits in Taschenrechner.obj definiert.
    1>C:\Users\Nowaepon\documents\visual studio 2013\Projects\CHowTo\Debug\Test1.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
    ========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========

    Ich kann auch nicht per Fehlerkonsole zu dem Fehler im Code springen. Sehr merkwürdig.

    Google werde ich dann jetzt auch mal bemühen (wegen scanf).



  • Nowaepon schrieb:

    Das Symbol gibt er leider nicht aus.

    Aber

    Nowaepon schrieb:

    Test.obj : error LNK2005: _main ist bereits in Taschenrechner.obj definiert.

    🙄

    Du hast da zwei Dateien in deinem Projekt: Test und Taschenrechner.
    Und in beiden hast du ein main.

    Und dein fertiges Programm heißt Test1.exe. Da hast du wohl etwas viel rum gespielt.

    Mach ein neues Projekt. Nenn das Taschenrechner und dann kopierst du da deinen Code rein.



  • Hmmm Problem gefunden.
    Wenn ich natürlich in einer anderen Datei auch schon main habe ist das nicht gerade förderlich.

    Dafür habe ich jetzt aber ein ganz anderes Problem.
    Mit \n setzt man ja einen Absatz. Der erste Absatz in meinem Code wird aber nicht gesetzt.
    Außerdem beendet sich das Programm sofort selbst sobald die zweite Zahl bestätigt wurde. Obwohl getchar() das ja verhindern sollte.



  • Ein neues Projekt werde ich dann auch noch einmal anlegen. Vielleicht behebt das ja die anderen Probleme.



  • Nowaepon schrieb:

    Mit \n setzt man ja einen Absatz. Der erste Absatz in meinem Code wird aber nicht gesetzt.

    Welcher soll das sein?

    Nowaepon schrieb:

    Außerdem beendet sich das Programm sofort selbst sobald die zweite Zahl bestätigt wurde. Obwohl getchar() das ja verhindern sollte.

    Das getchar liest das '\n' von der Entertaste ein.

    Wie startest du das Programm?



  • Nowaepon schrieb:

    Mit \n setzt man ja einen Absatz. Der erste Absatz in meinem Code wird aber nicht gesetzt.

    Es ist unklar, was du mit Absatz meinst:

    Heading
    TextTextText
    

    oder

    Heading
    
    TextTextText
    

    ?
    Für letzteres brauchst du zwei '\n', denn das gibt nur einen einzelnen Zeilenumbruch aus.



  • Mit Absatz meinte ich dein zweites Beispiel Nathan. Mit einem zweitem \n klappts einwandfrei.

    Danke für die Info mit der Enter-Taste. Die habe ich dann gleich mal ausmaskiert.
    Jetzt klappt alles bestens.

    Kennt ihr eigentlich einen Weg um nur X Stellen einer Variable anzuzeigen?
    Gegenwärtig habe ich etliche 0 an meinem Ergebnis hängen. Das würde ich gerne für die anzeige verringern.
    Im Tutorial stand bisher nur etwas um die Variablen zu verlängern.



  • Nowaepon schrieb:

    Kennt ihr eigentlich einen Weg um nur X Stellen einer Variable anzuzeigen?
    Gegenwärtig habe ich etliche 0 an meinem Ergebnis hängen. Das würde ich gerne für die anzeige verringern.
    Im Tutorial stand bisher nur etwas um die Variablen zu verlängern.

    Indem du die Formatmöglichkeiten von printf ausnutzt.
    Welche es gibt, kannst du z.B. da http://www.cplusplus.com/reference/cstdio/printf/ nachlesen.

    printf("\nDie Summe aus %.3f und %.3f ist %.3f.", wert1, wert2, summe)
    

    Oder, wenn es wirklich X sein soll

    int X = 3;
    printf("\nDie Summe aus %.*f und %.*f ist %.*f.", wert1, X, wert2, X, summe, X)
    


  • Alles klar, danke dir!
    Jetzt sit alles so wie es sein soll.

    Nochmals danke für eure Geduld mit mir. 😃


Anmelden zum Antworten