Kleines Pogrammproblem



  • Mal zu erklärung was ich mit dem pogramm will:
    Ich hab eine datei input aus der sollen alle zeichen ausgelesen werden in das Feld(vector) gespeichert werden und dann nach dem schema wert1=, wert2=...... ausgegeben werden. Ich bin im pogrammieren noch kein pro aber das is was ich mir halt hier gedacht habe:
    PS: sagt mir ob ich gut kommentiere

    #include<fstream>//für Dateifunktionen
    #include<string>//damit ich string verwenden kann für Dateiname
    #include<iostream>//wohl klar
    #include<vector>//für das Feld wo ich es speichere
    #include<stdio.h>//getchar()
    int main(){
    vector<char> FELD;//das Feld ich weiß hier noch nicht wie groß
    string Name("INPUT.txt");//Name der Datei definieren
    ifstream INPUT(Name.c_str());//Datei definieren und öffnen
    char c;//Zwischenspeichervariable
    //alle einlesen in c zwischenspeichern und dann ins feld rein
    while(INPUT.get(c)){
    FELD.push_back(c);
    }
    //alle ausgeben
    for(int i;i<FELD.size(); i++){
    cout<<i<<" :"<<FELD[i]<<endl;
    }

    getchar();
    }



  • Naja die Kommentare sind teils überflüßig und teils sehr flappsig geschrieben. Lieber eindeutige Variablennamen nehmen und es hat sich. Ach ja: Es gibt auch noch die Möglichkeit Quellcode zu formatieren, d.h. Zeilen einzurücken.

    Noch 2 kleine Tipps:
    1.) In der for-Schleife schreibst du "int i;". Im Normalfall wird i mit '0' initialisiert. Aber sicher sein, ob das alle Compiler so handhaben, kannst du dir nicht. Also besser: "int i = 0;"
    2.) Ich persönlich würde den Vector mit einem Iterator durchlaufen lassen. In dem Fall zwar absolut nicht nötig, aber später vermeidest du eventuell Fehler.

    btw.: Gesperrt geschriebene Namen sind im Normalfall den Makros vorenthalten. Also lieber klein schreiben und Verwechslungen vorbeugen.



  • wie meinst das mit iterator? und danke kumpel jetzt funzt was^^(habe int i=0 gemacht)



  • cin schrieb:

    1.) ...Im Normalfall wird i mit '0' initialisiert.

    Wie kommst du denn da drauf ? Man muss sein Variablen schon selbst
    initialisieren, sonst Fehler.



  • Karldin Shinowa schrieb:

    PS: sagt mir ob ich gut kommentiere

    die sind sogar alle überflüssig.

    #include <fstream>
    #include <string>
    #include <iostream>
    #include <vector>
    #include <stdio.h>
    int main(){
       vector<char> feld;
       string name("input.txt");
       ifstream input(name.c_str());
    
       {
          char c;
          while(input.get(c))
             feld.push_back(c);
       }
    
       for(int i;i<feld.size(); i++)
          cout<<i<<" :"<<feld[i]<<endl;
    
       getchar();//weil ich dev-cpp verwende. jede gute ide hält natürlich die 
          //ausgabe für mich sichtbar
    }
    

    und jetzt, wo man es lesen kann, sieht man auch sofort, daß bei "for(int i;i<feld.size(); i++){" was fehlt.


Anmelden zum Antworten