aus string mach int [Array]
-
Hallo zusammen,
ich sitze schon ne ganze an einem Problem, welches ich trotz reichlicher Bemühungen noch nicht lösen konnte..
---------------------
Ich soll aus einer Textdatei 5 Zeilen à 5 Zeichen(Ziffern) als String einlesen.
Dieses Feld ist momentan in einem zweidimensionalen string Array gespeichert.
Jetzt wollte ich aus diesem zweidimensionelen Array mit 5 Zeilen und 5 Spalten, ein "großes" eind. Array machen, in dem alle 25 Ziffern als int's stehen sollen, um das ganze besser verarbeiten zu können.
Eine "Alternative" wäre auch, das Eingelesene direkt in einem int-Array zu speichern.
Wäre toll, wenn mir vll jemand helfen könnte.
Beste Grüße
-
Hallo
wenn du reine Ziffern als chars (warum speicherst du einzelne Ziffern als string, und nicht als char?), brauchst du bloß eine lexigrafische Umwandlung. Da du hier im C++ Forum bist, schau nach std::stringstream, lexical_cast und dem FAQ-Thread Einmal String und zurück
bis bald
akari
-
akari schrieb:
wenn du reine Ziffern als chars [hast] warum speicherst du einzelne Ziffern als string, und nicht als char?
Ich trau' mich wetten, dass er das tut.
Meinst du sowas:
#include <iostream> #include <fstream> #include <string> using namespace std; int main( ) { ifstream file( "C:\\data.dat" ); if( file.fail( ) ) { cout << "File does not exist!" << endl; cout << "aborting..." << endl; return EXIT_FAILURE; } int data[ 26 ] = { 0 }; for( int i = 0; i < 5; ++i ) { string tmp; getline( file, tmp, '\n' ); if( ( tmp.length( ) > 5 ) || file.fail( ) ) { cout << "File is malformed!" << endl; cout << "aborting..." << endl; file.close( ); return EXIT_FAILURE; } for( int n = 0; n < 5; ++n ) { data[ i * 5 + n ] = tmp[ n ] - '0'; } } for( int i = 0; i < 25; ++i ) { cout.fill( '0' ); cout.width( 2 ); cout << i+1 << ": "; cout.width( 1 ); cout << data[ i ] << endl; } file.close( ); }Greetz, Swordfish
-
Hey Danke,
genau sowas hab ich gebraucht !
Gruß, Chiro