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

11

15.03.2006, 14:10

ES KLAPPT IMMER NOCH NICHT!!!! :crying:

ich check des einfach net, was isch hierdran falsch?? Ich denke es liegt an dem casten, aber ich bin mir net sicher

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
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

// Hauptprogramm

//

int main ()
{
    // Variablen

    //

    string Name = "";
    int Groesse = 0;

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

    // sizeof Name in Groesse speichern

    Groesse = static_cast<int> ( sizeof (Name) );

    cout << Groesse << endl;



    // Datei zum schreiben öffnen

    ofstream Schreibe ( "Namen.txt" , 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::binary );

    // Groesse lesen

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

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

    // Name Lesen

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

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


    return 0;
}

12

15.03.2006, 17:00

Probiers mal mit:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
std::ofstream Output;

Output.open (L"Namen.txt", std::ios::out | std::ios::binary);

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

Output.write ((char*)(&Name), sizeof (Name));

Output.close ();

std::ifstream Input;

Input.open (L"Namen.txt", std::ios::in | std::ios::binary);

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

Input.read ((char*)(&Name), sizeof(Name));

Input.close ();
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

13

15.03.2006, 17:04

danke, aber was hat des "L" und die Klammern zu sagen??

14

15.03.2006, 17:07

Achso, dass ist wegen Unicode. Aber wenn du kein Unicode aktiviert hast, dann lass das L einfach weg.
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

15

15.03.2006, 17:10

hat immer noch nich den gewünschten Effekt:

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
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

// Hauptprogramm

//

int main ()
{
    // Variablen

    //

    string Name = "";
    int Groesse = 0;

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

    // sizeof Name in Groesse speichern

    Groesse = static_cast<int> ( sizeof (Name) );

    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 (int));

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

    // Name Lesen

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

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


    return 0;
}

16

15.03.2006, 17:13

Was kommt dabei raus (Bildschirmausgabe)?
Ich glaub sizeof liefert schon einen int, also musst du nicht casten

Zitat


// sizeof Name in Groesse speichern
Groesse = static_cast<int> ( sizeof (Name) );
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

17

15.03.2006, 17:14

nix, er gibt als Name dann immernoch das vor dem Lesen zugewiesene "Bla" aus... :(

ja, aber ich wollte auf nummer sicher gehen ;)

18

15.03.2006, 17:16

Und die Zahl? Also die größe
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

19

15.03.2006, 17:17

Groesse: 16

wäre es möglich, dass er nicht nur die länge, sondern die ganze Kapazität des Strings schreibt?? Weil wenn ich einen kürzeren eingebe, dann kommt als Größe immer noch 16 raus

20

15.03.2006, 17:18

stimmt das mit deiner Eingabe überein?
Ich gebe bei der Arbeit immer 100%

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

Werbeanzeige