Eingabespeicherung bei Fahrtenbuch
-
hallo ich programmiere im Moment ein Fahrtenbuch.
Habe folgendes Problem:
Die Daten die in der Funktion Fahrtenbuch Eintrag gemacht werden müssen dann in der Funktion Uebersicht in eine Textdatei gespeichert werden.
Außerdem soll sich der Dateiname aus Monatsname + akt. Jahreszahl sowie der Extension „dat“ zusammensetzen. Beispiel: Juni2010.dat.#include "stdafx.h" struct Fahrtenbuch { char Monat[20]; int TagDerFahrt; float Startzeit; float Endzeit; int gKilometer; char Ziel[50]; char GrundFahrt[50]; }; struct Fahrtenbuch Eintrag(); void Uebersicht(struct Fahrtenbuch Fahrt); void main() { char auswahl; int wiederholung = 0; struct Fahrtenbuch Fahrt; printf("Willkommen zu Ihren Fahrtenbuch\n"); printf("Was moechten Sie tun???\n"); do { printf("1 = einen Eintrag in das Fahrtenbuch machen\n2 = Uebersicht vom Fahrtenbuch\n"); printf("Auswahl:"); cin >> auswahl; switch(auswahl) { case'1': Fahrt = Eintrag(); break; case '2': Uebersicht(Fahrt); break; default: printf("Fehler!!! Falsche Eingabe!!!\n"); } printf("Möchten Sie wieder zum Hautpmenü????\n"); printf("Ja = 1, Nein = 0\n"); cin >> wiederholung; } while(wiederholung == 1); } struct Fahrtenbuch Eintrag() { struct Fahrtenbuch Fahrt; do { printf("Bitte den aktuellen Monat eingeben:"); fflush(stdin); gets(Fahrt.Monat); if (strcmp(Fahrt.Monat,"Januar") != 0) { if(strcmp(Fahrt.Monat,"Februar") != 0) { if(strcmp(Fahrt.Monat,"März") != 0) { if(strcmp(Fahrt.Monat,"April") != 0) { if(strcmp(Fahrt.Monat,"Mai") != 0) { if(strcmp(Fahrt.Monat,"Juni") != 0) { if(strcmp(Fahrt.Monat,"Juli") != 0) { if(strcmp(Fahrt.Monat,"August") != 0) { if(strcmp(Fahrt.Monat,"September") != 0) { if(strcmp(Fahrt.Monat,"Oktober") != 0) { if(strcmp(Fahrt.Monat,"November") != 0) { if(strcmp(Fahrt.Monat,"Dezember") != 0) { printf("Falsche Eingabe\n"); } } } } } } } } } } } } } while(strcmp(Fahrt.Monat,"Januar") != 0 && strcmp(Fahrt.Monat,"Februar") != 0 && strcmp(Fahrt.Monat,"März") != 0 && strcmp(Fahrt.Monat,"April") != 0 && strcmp(Fahrt.Monat,"Mai") != 0 && strcmp(Fahrt.Monat,"Juni") != 0 && strcmp(Fahrt.Monat,"Juli") != 0 && strcmp(Fahrt.Monat,"August") != 0 && strcmp(Fahrt.Monat,"September") != 0 && strcmp(Fahrt.Monat,"Oktober") != 0 && strcmp(Fahrt.Monat,"November") != 0 && strcmp(Fahrt.Monat,"Dezember") != 0); do { printf("Bitte Tag der Fahrt eingeben:\n"); cin >> Fahrt.TagDerFahrt; if(Fahrt.TagDerFahrt > 31) { printf("Fehler!!! Falsche Eingabe!\n"); } } while(Fahrt.TagDerFahrt > 31); do { printf("Bitte Startzeit eingeben:\n"); cin >> Fahrt.Startzeit; if(Fahrt.Startzeit >25 || Fahrt.Startzeit < 0) { printf("Fehler!!! Falsche Eingabe!\n"); } } while(Fahrt.Startzeit >25); do { printf("Bitte Endzeit eingeben:\n"); cin >> Fahrt.Endzeit; if(Fahrt.Endzeit > 25 || Fahrt.Endzeit < 0) { printf("Fehler!!! Falsche Eingabe!\n"); } } while(Fahrt.Endzeit > 25); printf("Bitte gefahrene Kilometer eingeben\n"); cin >> Fahrt.gKilometer; printf("Bitte Ziel eingeben:\n"); fflush(stdin); gets(Fahrt.Ziel); printf("Bitte Grund der Fahrt eingeben:"); fflush(stdin); gets(Fahrt.GrundFahrt); return Fahrt; } void Uebersicht(struct Fahrtenbuch Fahrt) { printf("|Tag der Fahrt|Startzeit|Endzeit|gefahr.Kilometer| Ziel |GrundDerFahrt|\n"); printf("|-------------|---------|-------|----------------|----------|-------------|\n"); printf("|%d |%.2f |%.2f |%d |%s |%s |\n",Fahrt.TagDerFahrt,Fahrt.Startzeit,Fahrt.Endzeit,Fahrt.gKilometer,Fahrt.Ziel,Fahrt.GrundFahrt); }
-
zaraki schrieb:
Habe folgendes Problem:
Die Daten die in der Funktion Fahrtenbuch Eintrag gemacht werden müssen dann in der Funktion Uebersicht in eine Textdatei gespeichert werden.
Außerdem soll sich der Dateiname aus Monatsname + akt. Jahreszahl sowie der Extension „dat“ zusammensetzen. Beispiel: Juni2010.dat.Ich sehe da kein Problem, sondern nur deine Hausaufgabenstellung.
Und wo wir schon dabei sind:
Bis auf fünf Zeilen ist dein Programm C. Mach folgende Zeilen raus:#include <iostream> using namespace std;Und ersetze die drei Zeilen mit
cindurch die entsprechende C Funktion. Danach fragst du nochmal im C Forum nach.
-
tut mir leid aber ich kann nur cin also kann ich das auch nicht ändern.
Bitte poste auch nur Beiträge die mir helfen.
Denn ich weiß trotzdem nich wie ich die aufgabe lösen soll.
-
Mit scanf geht das umschreiben, um cin wegzukriegen.
Ah, da ist es ja auch schon im C-Forum http://www.c-plusplus.net/forum/viewtopic-var-t-is-270369-and-highlight-is-.html