2 char-Elemente in 1
-
tach-chen......
und zwar häng ich an folgenden problem. ich habe nen char string der 12 zeichen groß ist. alle elemente sind zahlen. jetzt will ich immer zwei elemente in eins packen, so dass am ende ein neues array mit nicht mehr 12 elementen da ist, sondern nur noch mit 6. sprich ungefähr so: 0|2|3|4|4|8|1|0|2|6|2|3 soll am ende so aussehen 02|34|48|10|26|23
die striche stehen jetzt mal für die einzelnen elemente...
am besten wäre es noch, wenn man das gleich in int konvertieren könnte, muss aber nicht sein.
hier mal mein quelltext, in dem ich das benötige:
#include <iostream> #include <fstream> #include <string> #include <stdlib.h> #include <stdio.h> using namespace std; int main(int argc, char *argv[]) { // Eingabe Lottozahlen /* char ziehung[12]; cout<<"Eingabe Lottozahlen:"<<endl; for(int b=0; b<12; b++) { cin >>ziehung[b]; } */ char filename[128]="lotto.txt"; ifstream file; char zeile[1024]; string lzeilen[12]; // Datei öffnen file.open(filename, ios::in); if (file.good()) { file.seekg(0L, ios::beg); for (int i=0;! file.eof();i++) { file.getline(zeile, 1024); lzeilen[i]=zeile; } } else { cout << "Datei nicht gefunden." << endl; } char charArray[17][12]; char tmpcharArray[12][12]; char neucharArray[6][12]; // String in 2 dim char-Array konvertieren for(int j=0; j<12; j++) { strcpy(charArray[j],lzeilen[j].c_str()); } // Leerzeichen entfernen for(j=0; j<12; j++) { for(int z=0, a=0; z<17; z++) { if(charArray[j][z] == ' ') { } else { tmpcharArray[j][a]=charArray[j][z]; a++; } } } // Ausgabe cout<<endl<<endl; for(j=0; j<12; j++) { for(int z=0; z<12; z++) { cout<<tmpcharArray[j][z]; } cout<<endl; } cout<<endl; return 0; } /* steht in der lotto.txt: 11 15 25 37 38 47 11 16 20 26 29 45 03 18 20 30 46 49 02 12 15 25 31 49 01 03 05 07 41 48 01 13 14 26 31 45 02 07 09 11 20 27 02 12 16 20 27 28 07 18 21 22 44 45 06 07 29 33 36 44 01 12 22 33 39 40 01 07 08 34 37 41 */
-
Ein char kann doch nur ein Zeichen speichern!
Was du machen kannst, ist 2 chars in einen short o.Ä zu schreiben, ungefähr so:char c[2] = {'a', 'b'}; short s = (c[0] << 8) + (c[1]);