Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » vom buffer in ein array

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
09.01.2004, 16:47 Uhr
~anfängerXXS
Gast


hallo!!

ich habe eine datei ausgelesen in der eine folge von 0en und 1en stehen.
Dazu habe ich ein


C++:
char *bufIn


erstellt, dann

C++:
bufIn = new char[FileSize+1];



Die Daten liegen nach ReadFile auch im Buffer, aber nun will ich Zeichen für Zeichen abgrasen und in ein


C++:
bool PIXEL[x][y] einlesen.



Dazu ist mir aber nicht ganz klar wie ich zeichenweise mit bufIn arbeite.

C++:
if (bufIn[var] == "1")
{..


will jedenfalls nicht klappen.

Wie kann ich Zeichenweise auf 0 oder 1 testen?

Ja sorry is sicher pillepalle, aber ich mach das hier zum ersten mal
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.01.2004, 17:20 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich vermute mal du meinst mit "in der nur nullen und einsen stehen" das dort nur die zeichen stehen die entweder null oder 1 sind...

also ich würde dafür nicht extra einen grossen buffer nehmen um das erst auszulesen und dann wieder einen neuen buffer um das dann umzukonvertieren sondern gleich beim einlesen in das bool array reinschreiben sollte einfacher sein...(auch ist die frage ob man ein boolarray nehmen sollte weil das ja auch mindestens 1byte an speicher pro wert verbrät....
ist irgendwie schwierig dir dazu einen guten tipp zu geben wenn man nicht genau weiss was du da machen willst....

so wenn ich dein problem richtig verstanden habe willst du einfach nur den spass in ein 2d-array schreiben...
dafür musst du die diemenstionen deines 2d-arrays kennen

kopieren ist dann einfach so

C++:
for(j=0;j<y;++j)for(i=0;i<x;++i)PIXEL[i][j]=bufIn[j*x+i]=='1';



wenns nicht zeilenweise sondern spaltenweise im array steht dann musst du j+i*y verwenden.

pillepalle ist das übrigens nicht (aus meiner sicht jedenfalls nicht)....
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 09.01.2004 um 17:24 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.01.2004, 17:26 Uhr
0xdeadbeef
Gott
(Operator)


Der Fehler liegt in den Anführungszeichen. Das hier:

C++:
"1"


ist eine Zeichenkette, das hier:

C++:
'1'


ist ein Zeichen. Was du haben willst, ist ein Zeichen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.01.2004, 09:23 Uhr
~AnfängerXXS
Gast


Hallo nochmal!

also mit


C++:
if (bufIn[xr+yr*124] == '1')
{
...
}



gehts irgendwie auch nich. Wie kann ich denn nun zum bsp auf das 2. zeichen von bufIn zugreifen? bufIn[2]?? Wie kann ich _ein_ Zeichen in einen anderen string kopieren. strcpy(ziel,bufIn[2]) zum bsp geht nicht, weil er nich von char nach const char* casten kann.
wenn ich (CHAR*) davor schreibe gibts einen Speicherfehler.
hmmm...
gar nich so einfach hier!

mfg

anfänger
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.01.2004, 13:21 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

strcpy(ziel,bufIn[2]) zum bsp geht nicht,


ist auch kein wunder...
bufIn[2] ist das dritte zeichen aus dem array auf das bufIn zeigt und kein pointer auf ein chararray....

strcpy will kein einzelnes zeichen kopieren sondern einen ganzen string...der geht solange das array durch bis der ein nullbyte findet und kopiert jedes einzelne zeichen...
wenn du einfach nur ein zeichen eines strings ändern willst kannst du das z.b-so machen


C++:
char mystring[]="Hallo";
mystring[1]='e';//jetzt steht Hello drin...


--
...fleißig wie zwei Weißbrote
 
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: