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.