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

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

11

28.11.2006, 20:47

Ich habe deinen Code einfach nur rauskopiert und in der Datei steht nur:

[list]01
10[/list]und mehr nicht.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

28.11.2006, 20:55

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    fstream f;
    char cstring;
    f.open("game.txt", ios::in);
    while (f.get(cstring))
    {
        if(cstring=='0' || cstring=='1')  //!?

            cout << cstring;
    }
    f.close();

    cin.ignore();

    return (0);
}


so funzts...

wenn man debugger benutzt fällt das übrigens gleich auf ;)

http://gcc.gnu.org/ml/gcc-patches/1998-05/msg00005.html

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

13

28.11.2006, 21:07

Perfekt!!! Danke dot für deine Hilfe!!!

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

14

29.11.2006, 22:20

MIST !!! Jetzt geht es nicht mehr!!!

Habe es etwas umgeändert und schwups geht es nicht mehr :( :evil: :( !!!

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
fstream f; 
    int i=-1;
    char cstring; 
    f.open("game.txt", ios::in); 
    while (f.get(cstring)) 
    { 
        i++;
            if(cstring=='1' || cstring=='2') 
            {
                field[i] = cstring;
            }
            
    } 
    f.close(); 


Es kommt nun bei jedem Zeilenumruch eine Null als Charwert (also nicht 48 was dann eine Null als Ausgabe erzeugen würde!).

Wieso kommt die und wie bekomme ich sie weg (oder geht es nur, in dem ich mir einen Weg suche, wie sie ignorieren kann?)?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

29.11.2006, 22:22

schätze mal so gehts:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
fstream f;
    int i=0;
    char cstring;
    f.open("game.txt", ios::in);
    while (f.get(cstring))
    {
            if(cstring=='1' || cstring=='2')
            {
                field[i++] = cstring;
            }
           
    }
    f.close();


wenn du *immer* i inkrementierst, dann wirst du die fälle in denen cstring nicht '1' oder '2' ist (also dann vermutlich '\n') überspringen...ich tippe drauf, dass field mit 0 initialisiert wurde.

Werbeanzeige