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.