Integer zu const char*

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Integer zu const char*

Beitrag von naums » Fr Feb 26, 2010 5:22 pm

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?
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Integer zu const char*

Beitrag von Bebu » Fr Feb 26, 2010 5:27 pm

C oder C++?

Unter C++ könntest du dir Stringstreams ansehen.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Integer zu const char*

Beitrag von naums » Fr Feb 26, 2010 5:36 pm

C++ hätte ich vllt. sagen sollen ^^.

Stringstreams? Meinst du std::cin und std::cout ???
.globl truth
truth:
mov r0, #42
mov pc, lr

AnGaiNoR
Beiträge: 212
Registriert: Sa Jul 19, 2008 7:07 pm
Wohnort: Dresden

Re: Integer zu const char*

Beitrag von AnGaiNoR » Fr Feb 26, 2010 5:59 pm

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++.
Physics is like sex: sure, it may give some practical result, but that's not why we do it.
(Richard P. Feynman)

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Integer zu const char*

Beitrag von naums » Fr Feb 26, 2010 6:07 pm

und andersrum? wenn ich aus einem ausgelesenen INI Attribut wieder eine Zahl haben will?
.globl truth
truth:
mov r0, #42
mov pc, lr

AnGaiNoR
Beiträge: 212
Registriert: Sa Jul 19, 2008 7:07 pm
Wohnort: Dresden

Re: Integer zu const char*

Beitrag von AnGaiNoR » Fr Feb 26, 2010 6:28 pm

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 );
Physics is like sex: sure, it may give some practical result, but that's not why we do it.
(Richard P. Feynman)

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Integer zu const char*

Beitrag von Bebu » Fr Feb 26, 2010 6:34 pm

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
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Integer zu const char*

Beitrag von Xin » Fr Feb 26, 2010 7:42 pm

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 );

Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Integer zu const char*

Beitrag von naums » So Feb 28, 2010 12:31 pm

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 ^^.
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: Integer zu const char*

Beitrag von +Fuss+ » So Feb 28, 2010 1:00 pm

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.

Antworten