Seite 1 von 2
Integer zu const char*
Verfasst: Fr Feb 26, 2010 5:22 pm
von naums
Ich hab mal wieder ein Problem. Und zwar nimmt der Befehl "WritePrivateProfileString" nur Parameter in const char* an. Jetzt will ich aber Zahlen in die Datei schreiben und die dann als Zahlen wieder auslesen. Wie mache ich das?
Re: Integer zu const char*
Verfasst: Fr Feb 26, 2010 5:27 pm
von Bebu
C oder C++?
Unter C++ könntest du dir Stringstreams ansehen.
Re: Integer zu const char*
Verfasst: Fr Feb 26, 2010 5:36 pm
von naums
C++ hätte ich vllt. sagen sollen ^^.
Stringstreams? Meinst du std::cin und std::cout ???
Re: Integer zu const char*
Verfasst: Fr Feb 26, 2010 5:59 pm
von AnGaiNoR
In C geht es per sprintf (in stdio).
Code: Alles auswählen
// char-Array-Puffer anlegen
char buffer[16];
// Puffer füllen
sprintf(buffer, "%d", zahl);
In C++ per String-Streams (in ostream müssten die sein).
Code: Alles auswählen
// ostream-Puffer anlegen
std::ostream buffer;
// Puffer füllen
buffer << zahl;
EDIT: Ich persönlich bevorzuge die C-Variante, auch in C++.
Re: Integer zu const char*
Verfasst: Fr Feb 26, 2010 6:07 pm
von naums
und andersrum? wenn ich aus einem ausgelesenen INI Attribut wieder eine Zahl haben will?
Re: Integer zu const char*
Verfasst: Fr Feb 26, 2010 6:28 pm
von AnGaiNoR
naums hat geschrieben:und andersrum? wenn ich aus einem ausgelesenen INI Attribut wieder eine Zahl haben will?
Da kannst du entweder sscanf (stdio) oder atoi (stdlib) nehmen.
Code: Alles auswählen
// Zahl auslesen mit sscanf
int zahl;
sscanf( string, "%d", &zahl );
// Zahl auslesen mit atoi
int zahl = atoi( string );
Re: Integer zu const char*
Verfasst: Fr Feb 26, 2010 6:34 pm
von Bebu
Code: Alles auswählen
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
stringstream stream;
string INI_text = "140";
int Zahl;
stream << INI_text;
stream >> Zahl;
stream.clear();
cout << Zahl << endl;
return 0;
}
Mit dem Code kannst du einen String in einen Int umwandeln. Das funktioniert auch in die andere Richtung und mit anderen Variablentypen
Re: Integer zu const char*
Verfasst: Fr Feb 26, 2010 7:42 pm
von Xin
naums hat geschrieben:Ich hab mal wieder ein Problem. Und zwar nimmt der Befehl "WritePrivateProfileString" nur Parameter in const char* an. Jetzt will ich aber Zahlen in die Datei schreiben und die dann als Zahlen wieder auslesen. Wie mache ich das?
Code: Alles auswählen
char buffer[ 11 ];
int i = 4711, j;
sprintf( buffer, "%d", i );
printf( "%s", buffer );
j = atoi( buffer );
printf( "%d", j );
Re: Integer zu const char*
Verfasst: So Feb 28, 2010 12:31 pm
von naums
Das ist gut dass das mit String und Int geht, aber mein problem war const char* zu int.... und da erscheint mir atoi oder der buffer ja nichtmal so kompliziert.... hoffentlich weiß ich dass in einem Jahr noch ^^.
Re: Integer zu const char*
Verfasst: So Feb 28, 2010 1:00 pm
von +Fuss+
naums hat geschrieben:aber mein problem war const char* zu int...
Ein konstanter String ist nichts anderes als ein const char*. Einfach nur der Pointer auf das erste Zeichen.