Schleifenabbruch



  • Tyrdal schrieb:

    Künstliche Grenzen zu erschaffen ist dagegen generell nicht so richtig toll.

    kommt drauf an. wenn's unrealistisch ist, dass der user z.b. mehr als x eingaben macht, dann ist eine begrenzung ok. dafür gwewinnt man die vorteile eines festen arrays, schnelle, wahlfreie zugriffe und der code fällt auch entsprechend einfach aus.
    🙂



  • Hmm. Am schlausten wäre dann wahrscheinlich eine Liste von Arrays.
    🙂

    Ctrl+Z suspended das aktuelle Konsolenprogramm und schiebt es in den Hintergrund.

    Ja, bei mir auch. Wie gibt man eigentlich einen EOF-Marker unter Windows ein? Ist das am Ende gerade dieses Ctrl-Z?



  • µngbd schrieb:

    Hmm. Am schlausten wäre dann wahrscheinlich eine Liste von Arrays.

    das wär ja noch schlimmer. dann vielleicht eher ein 'dynamisches array' mit realloc, oder so, wenn man annimmt, dass der user 1 million werte und mehr reinhackt.
    🙂



  • kommt drauf an. wenn's unrealistisch ist, dass der user z.b. mehr als x eingaben macht, dann ist eine begrenzung ok.

    Woher weißt du was unrealistisch ist. Beispiel: cat resistors.txt | resistorapp Woher weißt du wieviel realistischerweise in so einer Datei steht?

    Man könnte alternativ zur Liste auch einen Speicherbereich als Array nutzen und ihn im Bedarfsfall per realloc o.ä. in der Größe anpassen, quasi einen C++ std::vector in C nachbauen. Mit dem Konstrukt hätte man dann auch wieder wahlfreien Zugriff.

    Oh zu spät gesehen ....



  • Wie gibt man eigentlich einen EOF-Marker unter Windows ein? Ist das am Ende gerade dieses Ctrl-Z?

    Ja



  • ;fricky schrieb:

    µngbd schrieb:

    Hmm. Am schlausten wäre dann wahrscheinlich eine Liste von Arrays.

    das wär ja noch schlimmer. dann vielleicht eher ein 'dynamisches array' mit realloc, oder so, wenn man annimmt, dass der user 1 million werte und mehr reinhackt.
    🙂

    Ich bin mir da gar nicht so sicher. Immerhin hätte meine Array-Liste einen Parameter, den man justieren könnte, nämlich die Größe der einzelnen Arrays. Ob man da wirklich in jedem Fall mit realloc besser dran ist?

    Wenn's mir an einer naiven Liste zu blöd wird, immer tausend Zeigern für das tausendste Element nachlaufen zu müssen, kann ich auch Abkürzungen einbauen.
    🙂



  • Ontopic kann man zusammenfassen:

    Sage schrieb:

    Nun entstehen für mich zwei Fragen.
    Die Widerstände lese ich ja in ein Array ein aber ich weis ja vorher nicht wieviel werte eingegeben werden. Kann ich das irgendwie beheben?

    Und zweitens wie realisiere ich das das Programm abfänge wenn ich Strg+Z drücke, aber dennoch normal mit scanf meine Widerstände ausliest?!?

    Die variable Eingabe-Länge kann man also mit realloc oder einer naiven verlinkten Liste ganz einfach in den Griff bekommen.

    Die Sache mit Ctrl-Z sollte unter Windows "von selbst" gehen, in dem du einfach den üblichen Test auf EOF oder mit feof() machst.



  • µngbd schrieb:

    ;fricky schrieb:

    µngbd schrieb:

    Hmm. Am schlausten wäre dann wahrscheinlich eine Liste von Arrays.

    das wär ja noch schlimmer. dann vielleicht eher ein 'dynamisches array' mit realloc, oder so, wenn man annimmt, dass der user 1 million werte und mehr reinhackt.
    🙂

    Ich bin mir da gar nicht so sicher. Immerhin hätte meine Array-Liste einen Parameter, den man justieren könnte, nämlich die Größe der einzelnen Arrays.

    klar, aber ich frage mich, ob's für den OP das richtige ist. er will irgendwas mit ein paar widerstandswerten machen, das wird sicherlich keine eagle-nachbildung oder so. aber man kann natürlich auch mit völlig überdimensionierten methoden einfache aufgaben lösen. sind wir hier im c++ forum, oder wie?
    🙂



  • sind wir hier im c++ forum, oder wie?

    Der hat gesessen. Und ja, ein wenig ist das wirklich so, weil ich nämlich zu oft die "naiven" Listen aus meiner Sammlung verwende. Und ich hab erst vor ein paar Tagen darüber nachgedacht, die ein bisschen zu tunen.



  • µngbd schrieb:

    sind wir hier im c++ forum, oder wie?

    Der hat gesessen. Und ja, ein wenig ist das wirklich so, weil ich nämlich zu oft die "naiven" Listen aus meiner Sammlung verwende.

    war ja nicht böse gemeint. ich mag listen auch sehr gern (am liebsten diesen haufen makros, der jede c-struktur zu listenelementen machen kann und gleichzeitig die listenverwaltung ist). aber ich finde, man sollte immer die einfachste datenstruktur wählen, mit der sich die angelegenheit erledigen lässt. (over-engineering vermeiden, hey, sowas steht bestimmt nicht in 'effective c++, das mir volkard letztens empfohlen hat).
    🙂


Anmelden zum Antworten