scanf() und andere Probleme



  • finde auch das dieser Programmierstil nicht sehr toll ist.
    Heute noch hat mein Lehrer unsere Klasse gesagt das ein guter Programmierer goTo nicht nutzt, weil es kein strukturiertes Programm wäre.
    Benutz die Kontrollkonstrukte, wird dir auch wesentlich leichter fallen.



  • Mir ist es egal wie man ein Prog schreibt , Hauptsache es funzt!!!Das mit dem & weg lassen funzt auch nicht!!!



  • Artemisc-noob schrieb:

    Mir ist es egal wie man ein Prog schreibt , Hauptsache es funzt!!!

    Dass es aber eben nicht "funzt", und dass man möglicherweise Fehler nur sehr schwer findet, und dass sich niemand freiwillig deinen Code ansieht, um dir zu helfen, weil dein C ähnlich schlecht ist wie dein Deutsch, solltest du aber berücksichtigen.

    Das mit dem & weg lassen funzt auch nicht!!!

    Je mehr Ausrufezeichen du machst, desto schneller wird dir geholfen.



  • Artemisc-noob schrieb:

    Mir ist es egal wie man ein Prog schreibt!!!

    Solche Aussagen motivieren mich ungemein!

    Wenigstens ist er ehrlich. 🕶



  • *kopfschüttel* Na, ich bin ja nicht so und versuch dir trotzdem mal zu helfen! 🙄

    Wie siehts denn jetzt damit aus?

    Artemisc-noob schrieb:

    printf("\n Bitte das 1. Wort eingeben:"); 
    scanf("%s", &String); 
    lol=fopen("Blocks.txt","a"); 
    zahler++; 
    fprintf(lol,"%d %s",zahler, a );
    

    Du liest das "1.Wort" in "String" ein...machst damit aber nichts, sondern schreibst die Variable "a" in die Datei....wo liest du denn überhaupt was in "a" ein? Haste dich da nicht vertan und willst eigentlich "String" in die Datei schreiben?

    P.S.: Und gewöhn dir mal an, aussagekräftigere Variablennamen zu nehmen (neben den ganzen anderen Sachen 🙄 ).



  • Jaa hackt nur schön auf mir rum , macht bestimmt Spaß!!!
    Naja jedenfalls hab ich das mit dem "String " und dem "a" auch schon "repariert", aber das funktioniert immer noch nicht!!!!AHHHHHHHHHH!! 😡



  • Artemisc-noob schrieb:

    Jaa hackt nur schön auf mir rum , macht bestimmt Spaß!!!
    Naja jedenfalls hab ich das mit dem "String " und dem "a" auch schon "repariert", aber das funktioniert immer noch nicht!!!!AHHHHHHHHHH!! 😡

    Na gut, dann poste doch nochmal deinen code wie er jetzt ist, und evtl. Fehler(meldungen) die auftreten!



  • Hier der Code:

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    
    int main()
    {
    long zahler;
    char a[200] ,b [200], n='n',d='d',l='l',s='s', eingabe;
    FILE*lol;
    /*Intro*/
    printf("LOLLOLOLOLOL");
    getch();
    /*Men*/
    menu:
    rewind(stdin);
    printf("\n \a Sie befinden sich im Menu");
    scanf("%c", &eingabe);
    
    if(eingabe=='n')goto new;
    else delay();
    
    if (eingabe=='d')goto datei;
    else delay();
    
    if (eingabe=='l')goto learn;
    else delay();
    
    if (eingabe=='s')goto source;
    else delay();
    /*Men*/
    
    /*Block*/
    new:
    printf("\n Bitte das 1. Wort eingeben:");
    scanf("%s", a);lol=fopen("Blocks.txt","a");
    zahler++;
    fprintf(lol,"%ld %s",zahler, a  );
    printf("\n Nun das 2. dzugeh”rige Wort eingeben:");
    scanf("%s", b);
    zahler++;
    fprintf(lol,"%ld %s",zahler, b );
    fclose(lol);
    goto menu;
    
    /*Block*/
    
    /*Abfrage*/
    learn:
    /*Abfrage*/
    
    source:
    datei:
    getch();
    
    }
    

    in der datei stehen aber immer nur blöde Kästchen , aber es gibt keine Fehlermeldungen!



  • und jetzt schreib das doch bitte mal ohne labels und goto. schliesslich stehen dir die feinsten schleifenkonstrukte der welt zur verfuegung.



  • rewind(stdin);
    

    rewind setzt doch den FILE Pointer an den Anfang der Datei, aber warum machst du das für den stdInputstream? Missfällt mir gerade, genauso wie die nicht darstellbaren Umlaute, welche man genausowenig nutzen sollte im Quellcode, wie man an deinem Beispiel sehen kann!



  • Hm, du meintest in der Datei stehen nur "blöde Kästchen"?

    Klingt danach also ob sie Binär beschrieben wurde....ist mir eigentlich ein Rätsel, fprintf schreibt doch normal soviel ich weiß?

    Und um meinen Vorgängern mal recht zu geben:
    1. Nimm das rewind raus (was soll das überhaupt bringen?).
    2. Nimm die Umlaute raus (besser ist das 😉 ).
    3. Benutz Funktionen und Schleifen, anstatt goto`s!

    So, genug gemeckert, läuft dein Programm denn ansonsten Problemlos? Du meintest doch mal in einem deiner ersten Posts das das Menü beim zweiten Durchgang übersprungen wird, oder so?

    Passiert das immer noch?



  • Ihr Freaks!
    erst sagt ihr ja mach doch mal stdin leer , dann sagt ihrb ey was soln das mit rewind.Hallo?? was denn jezt !! rewind hat das Problem mit dem Menu überspringen super gelöst!Und ausserdem : Wie soll ich biite diese If-goto-Combi mit einer Schleife lösen????? 😮



  • Oh Mist das mit den RF soll nie wieder vorkommen!!!!


Anmelden zum Antworten