Daten einlesen
-
hi
hab ein Programm geschrieben das aus einer .txt Datei eine Tabelle von 4 Zeilen einliest un dann als einen char-Array speichern soll.
Es funktioniert soweit nur in der Ausgabe habe ich Leerzeilen, was ich aber nicht möchte, da ich die Tabelle genauso wie sie in der Datei geschrieben ist auch im Programm haben möchte.
Die .txt Datei sieht wie folgt aus:52347,1180,L,765,32;
52347,1180,R,765,32;
52347,920,O,765,32;
52347,920,U,765,32;Als Ausgabe bekomme ich aber:
52347,1180,L,765,32;
52347,1180,R,765,32;
52347,920,O,765,32;
52347,920,U,765,32;
Das Programm:
#include <iostream.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> int main () { int i=0; char Qtab[6][21]={{0},{0},{0},{0},{0}}; FILE *ProDat; ProDat=fopen("Produkt.txt", "r"); if(ProDat==NULL) { cout<<"Fehler beim Oeffnen der Datei!"<<endl; exit(1); } else { cout<<"Datei wurde erfolgreich geoeffnet"<<endl; cout<<endl; } while(!feof(ProDat)) { fgets(Qtab[i],21,ProDat); i++; } for(i=0;i<=5;i++) { for(int j=0;j<=20;j++) { cout<<Qtab[i][j]; } cout<<endl; } fclose(ProDat); return 0; }
-
Wenn du mit fgets einliest, dann landet auch der Zeilenumbruch, der in der Datei ist, in deinem char-Array. Du brauchst also selbst gar keine Zeilenumbrüche auszugeben. Und die doppelten sollten verschwinden, wenn du nicht mehr alle Zeichen einzeln, sondern nur noch die Zeilen ausgibst.
-
Erstmal solltest du die C++ Mittel mal etwas konsequenter umsetzen (fstreams und die bereits in früheren Beiträgen erwähnten structs).
Zweitens liest fgets() das \n beim Zeilenwechsel mit ein - da du dort noch ein endl; hinterherschickst, erhältft du eine Leerzeile.
Und drittens wäre es vielleicht ganz praktisch, deine Aufgabenstellung mal komplett zu sehen

-
Problem gelöst
danke
@CStoll
Also wir haben Projektwoche und ich muss 5 verschiedene Programme schreiben die verschiedene features haben deswegen sind die immer verscheiden, hab nur immer die selbe Tabelle gegeben ^^
-
Thelos schrieb:
Problem gelöst
danke
@CStoll
Also wir haben Projektwoche und ich muss 5 verschiedene Programme schreiben die verschiedene features haben deswegen sind die immer verscheiden, hab nur immer die selbe Tabelle gegeben ^^cstoll ist der beste^^
-
hey hab mal wieder ein weiteres Problem un zwar liest fgets() mir Leerzeilen ein also eine komplette Leerzeile. Somit brauche ich ein Array [6][21] aber in der Datei stehen nur 4 Zeilen mit je 21 Zahlen und Zeichen. Ich brauche aber in meinem Programm den Array mit 4 Zeilen weil ich sonst im weiterem Programm nicht damit arbeiten kann. Quelltext ist der selbe wie der weiter oben stehende nur die Ausgabe ist geändert.
-
dann wirst du eben prüfen müssen ob es eine leerzeile ist und wenn ja, diese ignorieren...