Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » txt feld in array , int to char

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.08.2005, 15:37 Uhr
~sunrise
Gast


HI
also ich bin grad dabei c++ zu lernen.Habe nun schon das erste Buch durch und wollte mich an ein eienes Project wenden um das gelerne zu vertiefen.

erstmal der Code:


C++:
#include "map.h";
#include <iostream.h>;
#include <stdio.h>;
#include <string.h>;

void Map::MapLaden (void)
{
  FILE *Datei;
  char Puffer[11];
  int zeile;

  Datei = fopen("map.txt","r");

  if ( NULL == Datei)
  {
    cout << "Fehler beim laden der Datei";
  }

  while(!feof(Datei))
  {
    zeile = 0;
    int i;
    for (i=1;i<=11;i++)
    {
      fgets(Puffer,2,Datei);
      zeile ++;
      if (zeile <=10 && zeile >=1)
      {
        strcpy(Map[i][zeile],Puffer);
      }
    }
  }

  fclose(Datei);
}


header:

C++:
class Map
{


  public:
  char Map[9][9];


  void MapLaden(void);

};


Ind dieser Zeile : strcpy(Map[i][zeile],Puffer);

bringt mir der compiler einen Fehler:

"map.cpp": E2034 Konvertierung von 'int' nach 'char *' nicht möglich in Funktion Map::MapLaden() in Zeile 30

"map.cpp": E2342 Keine Übereinstimmung des Typs beim Parameter '__dest' ('char *' erwartet, 'char' erhalten) in Funktion Map::MapLaden() in Zeile 30


Aber werder Map noch Puffer sind int ? Woher kommt dan der Fehler ???


Danke.. gruss chris
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.08.2005, 15:53 Uhr
Tommix



Hallo,

Zitat:

C++:
class Map
{


  public:
  char Map[9][9];



Du nennst sowohl die Klasse, wie auch einen Member Map, wahrscheinlich kommt der Compiler dadurch durcheinander. Mach mal aus Map[9][9] map oder m_map oder so.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.08.2005, 15:56 Uhr
~sunrise
Gast


Ok währe eine Möglichkeit gewesen
hab alles ist GameMap geändert:

C++:
strcpy(GameMap[i][zeile],Puffer);




C++:
class Map
{


  public:
  char GameMap[9][9];


  void MapLaden(void);

};




macht er trozdem nicht !

mod edit: benutze die CPP Tags selber

Dieser Post wurde am 28.08.2005 um 16:50 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.08.2005, 17:31 Uhr
Tommix



Ah ja,
GameMap[i][zeile] ist ein einzelner char, strcpy erwartet aber selbst einen string, sprich char[]. Also je nach dem entweder

C++:
char Puffer;
//...
GameMap[i][zeile] = Puffer;


oder

C++:
char Puffer[9];
GameMap[i] = Puffer;


oder auch

C++:
char GameMap[9][9][11];


und der Rest wie gehabt.
Das hängt jetzt vom Inhalt der GameMap ab.

Gruß, Tommix

Dieser Post wurde am 28.08.2005 um 17:32 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: