Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Stupidus

Frischling

  • »Stupidus« ist der Autor dieses Themas

Beiträge: 41

Wohnort: Heilbronn

Beruf: Schöler

  • Private Nachricht senden

21

15.03.2006, 17:20

du meinst mir der länge des Stings?? nein

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

22

15.03.2006, 17:33

die Größe von Strings lässt sich AFAIK mit

C-/C++-Quelltext

1
2
3
int groesse;
std::string name = "Testlaenge";
groesse = name.size()

berechnen.
Das sollte gehen.

23

15.03.2006, 17:34

oder mit sizeof (Name.c_str())
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Stupidus

Frischling

  • »Stupidus« ist der Autor dieses Themas

Beiträge: 41

Wohnort: Heilbronn

Beruf: Schöler

  • Private Nachricht senden

24

15.03.2006, 17:39

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
int main ()
{
    // Variablen

    //

    string Name = "";
    int Groesse = 0;

    cout << "Bitte ihren Namen eingeben: ";
    cin >> Name;

    // sizeof Name in Groesse speichern

    Groesse = Name.size ();

    cout << Groesse << endl;



    // Datei zum schreiben öffnen

    ofstream Schreibe ( "Namen.txt" , ios::out | ios::binary );

    // Groesse des String "Name" in Datei schreiben

    Schreibe.write ((char*) (&Groesse), sizeof (Groesse));

    // Name in Datei schreiben

    Schreibe.write ((char*) (&Name), (Groesse) );   
    Schreibe.close ();

    Groesse = 0;
    Name = "Bla";


    // Datei zum lesen öffnen

    ifstream Lese ( "Namen.txt" , ios::in | ios::binary );

    // Groesse lesen

    Lese.read ((char*) (&Groesse), sizeof (Groesse));

    cout << "Groesse: " << Groesse << endl;

    // Name Lesen

    Lese.read ((char*) (&Name), (Groesse));

    cout << "Name: " << Name << endl;


    return 0;


klappt aber immer noch nicht

25

15.03.2006, 17:44

so gehts:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

// Hauptprogramm

//

int main ()
{
    // Variablen

    //

    string Name;
    int Groesse;

    cout << "Bitte ihren Namen eingeben: ";
    cin >> Name;

    cout << Name << endl;

    // sizeof Name in Groesse speichern

    Groesse = sizeof (Name.c_str());

    cout << Groesse << endl;

    // Datei zum schreiben öffnen

    ofstream Schreibe; 
    Schreibe.open (L"Namen.txt" , ios::out | ios::binary );

    // Groesse des String "Name" in Datei schreiben

    Schreibe.write ((char*) (&Groesse), sizeof (Groesse));

    // Name in Datei schreiben

    Schreibe.write (Name.c_str (), sizeof(Name.c_str()));   
    
    Schreibe.close ();

    Groesse = 0;
    Name = "Bla";


    // Datei zum lesen öffnen

    ifstream Lese (L"Namen.txt" , ios::in | ios::binary );

    // Groesse lesen

    Lese.read ((char*) (&Groesse), sizeof (Groesse));

    cout << "Groesse: " << Groesse << endl;

    // Name Lesen

    Lese.read ((char*)(Name.c_str()), Groesse+1);

    cout << "Name: " << Name.c_str() << endl;

    return 0;
}
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

dbGAMES

Treue Seele

Beiträge: 323

Wohnort: Frankfurt

Beruf: Student

  • Private Nachricht senden

26

15.03.2006, 17:45

schau dir das mal an: http://www.dbgames.de/transfer/Laden_Speichern.rar
ich glaube das ist genau das was du willst ;)

Stupidus

Frischling

  • »Stupidus« ist der Autor dieses Themas

Beiträge: 41

Wohnort: Heilbronn

Beruf: Schöler

  • Private Nachricht senden

27

15.03.2006, 17:50

lol genau so hab ich mir des am Anfang auch gedacht!! Dass sich die Instanz einfach selber in ne Datei schreibt^^ aber des hab ich dann gelasse, weil ich dachte, dass es ersten wahrscheinlich net geht und zweitens, weils blöd ist^^

aber noch ne Frage, warum machen des alle mit

C-/C++-Quelltext

1
2
std::cout
 std::cin

oder so??
warum macht man nicht einfach

C-/C++-Quelltext

1
using namespace std;

dbGAMES

Treue Seele

Beiträge: 323

Wohnort: Frankfurt

Beruf: Student

  • Private Nachricht senden

28

15.03.2006, 17:52

aber es geht und ist dazu noch leicht! einfach für jede klasse (die man speichern/laden können soll) eine speicher und lade funktion schreiben.

das macht man nicht wegen den namespaces. such einfach mal hier im forum, da gibts genügend beiträge...

Stupidus

Frischling

  • »Stupidus« ist der Autor dieses Themas

Beiträge: 41

Wohnort: Heilbronn

Beruf: Schöler

  • Private Nachricht senden

29

15.03.2006, 17:55

und ich hab eine Schwachstelle bei dem Proggy gefunden:
Man kann keine Leerzeichen eingeben, danach wird einfach abgehack!

Wie kann man dass umgehen??

30

15.03.2006, 18:07

Das liegt daran, dass das Programm den Namen mit cin einliest.
Mit cin.get ((char*)(Name.c_str()), 100) gehts.
Ich gebe bei der Arbeit immer 100%

6% Montags
30% Dienstags
35% Mittwochs
25% Donnerstag
4% Freitag

Werbeanzeige