Ich habe folgende Aufgabenstellung zu lösen, nur langsam aber sicher verzweifel ich daran:
In einer Datei steht folgendes:
1.6.2000, Donnerstag
3.7.2001, Dienstag
Sinn des Programms soll werden, dass die Ausgabe mal so aussieht:
Donnerstag, den 1.6.2000
Dienstag, den 3.7.2001
Das Programm hier soll inetwa die Lösung dafür sein (ist von einem Kumpel), aber es funktioniert nicht.
Ich erreiche nur eine Ausgabe Donnerstag, den danach folgen Leerzeichen und wirre Zeichen. Ich habe auch schon mit dem Debugmodus gearbeitet, aber ich werde aus ihm nicht schlau.
Wie komme ich an die Zeichen ran, die vor dem Komma stehn? Gibt es eine elegantere Möglichkeit, die Aufgabenstellung zu lösen? z.B. das nur kleine Änderungen nötig werden wenn man eine Datei einließt die z.b. so aussieht:
1100 bananen
1200 birnen
und wo das erreicht werden soll:
bananen 1100
birnen 1200
Prinzipiell geht es einfach nur darum an bestimmten Stellen Eingaben zu drehen.
Ich sitze hier nun schon seit Stunden und bekomme es einfach nicht hin.
Falls sich jmd damit sehr gut auskennt , TS² kennt und lust hat mir das mal in Worten zu erklären, der kann mir gerne ne PN schreiben.vlt kann mir auch jmd per icq(131472160) helfen.
Aber mit einer Antwort hier im Forum bin ich natürlich auch erstmal zu frieden.
Vielen Dank!
In einer Datei steht folgendes:
1.6.2000, Donnerstag
3.7.2001, Dienstag
Sinn des Programms soll werden, dass die Ausgabe mal so aussieht:
Donnerstag, den 1.6.2000
Dienstag, den 3.7.2001
Das Programm hier soll inetwa die Lösung dafür sein (ist von einem Kumpel), aber es funktioniert nicht.
Ich erreiche nur eine Ausgabe Donnerstag, den danach folgen Leerzeichen und wirre Zeichen. Ich habe auch schon mit dem Debugmodus gearbeitet, aber ich werde aus ihm nicht schlau.
Code:
#include <stdio.h>
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
ifstream ein;
ein.open("c:\\temp\\Datum.txt");
if (!ein.good()) return 0;
char* feld= new char[100];
char ch;
int i=0,e=0,w=0;
while (ein.get(ch))
{
feld[i]=ch;
i++;
cout << ch;
}
cout << "\n\n"; //bis hier her funktioniert alles
feld[i-1]='\0'; //versteh ich nich, ist das die abschließende 0 der Datei?
for(int w=0;w<i;w++)
{
if (feld[w]==',') //gehe die Schleife solange durch bis ein , kommt und gebe die nachfolgenden Zeichen aus (+2 damit das komma und das leerzeichen nicht mitgeschrieben werden
{
for(int r=w+2;feld[r]!='\n';r++&&e++) //wozu e++
{
cout<<feld[r];
}
cout<<", den ";
e--;
for(int z=w-e-1;feld[z]!=',';z++&&e--) //was soll das?
cout<<endl;
}
}
delete feld;
system("pause");
return 0;
Wie komme ich an die Zeichen ran, die vor dem Komma stehn? Gibt es eine elegantere Möglichkeit, die Aufgabenstellung zu lösen? z.B. das nur kleine Änderungen nötig werden wenn man eine Datei einließt die z.b. so aussieht:
1100 bananen
1200 birnen
und wo das erreicht werden soll:
bananen 1100
birnen 1200
Prinzipiell geht es einfach nur darum an bestimmten Stellen Eingaben zu drehen.
Ich sitze hier nun schon seit Stunden und bekomme es einfach nicht hin.
Falls sich jmd damit sehr gut auskennt , TS² kennt und lust hat mir das mal in Worten zu erklären, der kann mir gerne ne PN schreiben.vlt kann mir auch jmd per icq(131472160) helfen.
Aber mit einer Antwort hier im Forum bin ich natürlich auch erstmal zu frieden.
Vielen Dank!