Klasenprog prob



  • Hallo,
    ich bins nochmal.
    Ich habe das mit den Klassen verstanden und gleich ein programm geproggt.
    Es speichert 6 eingegebene Werte in einer datei mit extension .vl im angegebenen Pfad.
    Hier der Code:

    #include "stdio.h"
    #include "iostream.h"
    #include "io.h"
    
    int main()
    {
    	class dataset
    	{
    	public:
    		int value1;
    		int value2;
    		int value3;
    		int value4;
    		int value5;
    		int value6;
    		int pathchoose;
    		int datahandle;
    	};
    	dataset ds;
    	cout << "Dieses Programm speichert die Eingabe des Users\nin Integer Variablen am ausgewaehlten Pfad";
    	cout << "\nGeben sie den 1ten Wert ein\n";
    	cin >> ds.value1;
    	cout << "Geben sie den 2ten Wert ein\n";
    	cin >> ds.value2;
    	cout << "Geben sie den 3ten Wert ein\n";
    	cin >> ds.value3;
    	cout << "Geben sie den 4ten Wert ein\n";
    	cin >> ds.value4;
    	cout << "Geben sie den 5ten Wert ein\n";
    	cin >> ds.value5;
    	cout << "Geben sie den 6ten Wert ein\n";
    	cin >> ds.value6;
    	cout << "Geben sie die Nummer des Pfades an,\nan dem die Werte gespeichert werden sollen.";
    	cout << "\n\n1 = C:/Eigene Dateien\n2 = E:/Wertordner\n3 = E:/Werte\n\n";
    	cin >> ds.pathchoose;
    	if (ds.pathchoose == 1)
    	{
    		creat("C:\Eigene Dateien\data1.vl", 256);
    		ds.datahandle = creat("C:\Eigene Dateien\data1.vl", 256);
    	}
    	if (ds.pathchoose == 2)
    	{
    		creat("E:\Wertordner\data1.vl", 256);
    		ds.datahandle = creat("E:\Wertordner\data1.vl", 256);
    	}
    	if (ds.pathchoose == 3)
    	{
    		creat("E:\Werte\data1.vl", 256);
    		ds.datahandle = creat("E:\Werte\data1.vl", 256);
    	}
    
    	cout << "Operation ausgeführt";
    	cout <<"\n\n\n\n";
    }
    

    Es gibt keine Fehler "nur" 13 Warnungen mit denen ich nichts anfangen kann.
    Zb.: 'd' nicht erkannte folge von escape zeichen.
    Naja, de habe ich erstmal nicht beachtet und es gerunnt.
    Wenn ich jetzt alles eingeben und so passiert aber nichts. Es gibt keine Fehler, aber irgendwie wird keine datei erstellt.
    Wisst ihr weiter?
    MFG Muffin Man



  • um mit dateien zu arbeiten solltest du lieber ifstream/ofstream benutzen. Das sind extra Klassen zum Datei-Handling.

    In der FAQ steht ein Beitrag dazu "Datein und Ströme" (oder umgekehrt :D)

    Dann noch eins, deklariere die Klasse außerhalb von der main-Funktion, das ist glaub ich etwas konformer.

    P.S. guck dir diesen Beitrag zu public-Variablen an 🙂



  • Muffin Man schrieb:

    Ich habe das mit den Klassen verstanden

    Das sieht man Deinem Programm so direkt noch nicht an...

    Aber zum Problem:

    In Zeichenketten leitet \ eine Escape-Sequenz ein, sowas wie \n für neue Zeile und sowas. Du hast an mehreren Stellen einen \ ausgeben wollen, anschließend kommt ein d. Der Compiler denkt aber jetzt kommt ein Escape-Code und versucht daher das nächste Zeichen, hier das d entsprechend zu interpretieren, das schafft er aber nicht, deswegen beschwert er sich. Einen \ kannst Du ausgeben, indem Du \\ schreibst. Dann sieht er beim ersten Backslash, oh es kommt ein besonderes Zeichen, und beim nächsten ah, okay ein Backslash soll es sein.

    MfG Jester



  • Wenn du in einem String einen Backslash verwenden willst, musst du ihn verdoppeln: "C:\\ein\\pfad\\zur\\datei"



  • Aha, danke euch allen.
    Ich werde es nochmal probieren.
    @Jester: Wieso? Ist an der Klasse was falsch?



  • Also zu allerst fällt mir auf, dass deine Variablen public sind. Du solltest sie privat machen und Methoden bereitstellen, über die du darauf zugreifen kannst (Stichwort: Datenkapselung). In deinem Fall täte es eine Struktur genauso gut.


Anmelden zum Antworten