Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Konvertirerung von int int *char?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
29.07.2004, 16:48 Uhr
Unwissende
...die wirklich Unwissende 8-)


Hallo hallo,

ich glaube, ich saß zu lange vorm PC...Ich hab grad keinen Plan, wie ich folgendes konvertieren könnte:


C++:
char *lcd_temp[20];
volatile int LSB_receive;
int MSB_LCD;

void main (void)
{
     MSB_LCD = (LSB_receive & 0x7F);     // 0111 1111
    * lcd_temp = MSB_LCD; //HIIIER! KONVERTIERUNG!!!!

}



Das array of char (*lcd_temp) wird als input für folgenden Funktionsaufruf verwendet (auch in der main):

C++:
    LCD_DisplayString(4,1, lcd_temp);



Denn die LCD_DisplayString-Funktion hat ja als Eingabeparameter einen Pointer auf ein char:

C++:
void LCD_DisplayString (char row, char column, unsigned char *string)
{
    LCD_Cursor (row, column);
    while (*string)
        LCD_DisplayCharacter (*string++);  //Inhalt, auf die der Pointer zeigt, wird hochgezählt
}


Also nochmal: Mein Problem ist, dass ich irgendiwe den Wert von MSB_LCD übergeben will, aber eigentlich keine Ahnung hab, WIE....Habt ihr ne Idee?


--
__________________________________
Unwissenheit ist vorläufig- Dummheit für immer

Dieser Post wurde am 29.07.2004 um 16:48 Uhr von Unwissende editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.07.2004, 16:58 Uhr
Unwissende
...die wirklich Unwissende 8-)


Sorry, Leute, der Betreff ist ja voll von Rechtschreibfehlern Sorry, ich war wohl zu lange in Schweden "Konvertierung von int into *char..." Jaja, wie schnell man Deutsch verlernt.....
Aber bin ich denn doof oder was, mir fällt nichts zu der Konvertierung ein...*heul*
--
__________________________________
Unwissenheit ist vorläufig- Dummheit für immer

Dieser Post wurde am 29.07.2004 um 16:59 Uhr von Unwissende editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.07.2004, 17:10 Uhr
0xdeadbeef
Gott
(Operator)


1. int main

2. In C99:

C++:
#include <stdio.h>
//...
char lcd_temp[20];
snprintf(lcd_temp, sizeof(lcd_temp), "%d", MSB_LCD);



3. In C89:

C++:
#include <stdio.h>
/* ... */
char lcd_temp[20];
sprintf(lcd_temp, "%d", MSB_LCD);



4. In C++:

C++:
#include <sstream>
#include <string>
//...
std::string lcb_temp;
std::stringstream s;
//...
s << MSB_LCD;
lcd_temp = s.str();
// Wenn du dann unbedingt nen const char* brauchst, benutzt du lcd_temp.c_str().




Bearbeitung:

Bei C99 und C89 Typen für lcd_temp angegeben, char *lcd_temp[20] macht da wenig sinn, oder?


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 29.07.2004 um 17:15 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.07.2004, 17:11 Uhr
freshman



Vorschlag zu Konvertierung:

C++:
char *lcd_temp[20];
volatile int LSB_receive;
int MSB_LCD;

#include<strstream>
void main (void) //bitter-böses void *schmerz*
{
  MSB_LCD = (LSB_receive & 0x7F);     // 0111 1111
  strstream stTemp;
  stTemp<<MSB_LCD;
  stTemp>>*lcd_temp;    
}

//alle Angaben ohne Gewähr
edit:tooooooo late;-(
--
freshman.say("Wer nicht an Wunder glaubt ist kein Realist!\a");
while(1)freshman.ask(sillyQuestion);

Dieser Post wurde am 29.07.2004 um 17:12 Uhr von freshman editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.07.2004, 17:57 Uhr
Pablo
Supertux
(Operator)


hey leute, wenn ich in ANSI C Forum postet, dann bitte auch int main benutzen!
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.07.2004, 04:26 Uhr
(un)wissender
Niveauwart


, das musste kommen!
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
30.07.2004, 12:27 Uhr
Unwissende
...die wirklich Unwissende 8-)


Hallo,

danke für die Antworten. In Beratung mit meinen netten Kollegen sind wir zu folgender Lösung gekommen:


C++:
char lcd_temp[20];
sprintf(lcd_temp, "%d", MSB_LCD);



Leider sollte lcd_temp[20] ja eigentlich ein Pointer auf ein Array sein und nicht "blos" ein einfaches Array........
Eigentlich könnte ich ja dann einfach ein weiteres Array (genauer gesagt, einen Pointer auf ein Array) nehmen, und dem dann den Inhalt von lcd_temp zuweisen, oder?
Leider stresst mir hier der Compiler ("objects too large"...)...menno
--
__________________________________
Unwissenheit ist vorläufig- Dummheit für immer
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
30.07.2004, 12:51 Uhr
ao

(Operator)



Zitat von Unwissende:
Hallo,
Leider sollte lcd_temp[20] ja eigentlich ein Pointer auf ein Array sein und nicht "blos" ein einfaches Array........
Eigentlich könnte ich ja dann einfach ein weiteres Array (genauer gesagt, einen Pointer auf ein Array) nehmen, und dem dann den Inhalt von lcd_temp zuweisen, oder?
Leider stresst mir hier der Compiler ("objects too large"...)...menno

Versteh ich nich, wozu brauchst du noch einen Pointer? Wenn du lcd_temp in LCD_DisplayString reinstopfen willst, dann mach das doch einfach. char [] und char * sind sich allgemein ziemlich ähnlich, und als Übergabeparameter an Funktionen sind sie exakt identisch.

Wenn sich der Compiler an dem "unsigned char" stört, dann deklarier lcd_temp einfach als unsigned char lcd_temp[20].


Zitat:
Object too large

Hoppla. Ist das vielleicht nur die Demoversion?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
30.07.2004, 13:18 Uhr
Unwissende
...die wirklich Unwissende 8-)


*pling*
Natürlich, jetzt erinnere ich mich wieder an meinen Prof, damals, vor langer, langer Zeit:
Arrays und Pointer sind ja eigentlich das selbe...

Die Größe der Objects ist auf 64k limitert.
Auch mit Dongle.
Programmiere auf Microcontroller, unter uvision (*nerv*).

danke nochmal für den Tipp, das lässt mich jetzt frohen Mutes an den Baggersee fahren...

PS: IT WORKS
--
__________________________________
Unwissenheit ist vorläufig- Dummheit für immer

Dieser Post wurde am 30.07.2004 um 13:28 Uhr von Unwissende editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
30.07.2004, 13:18 Uhr
0xdeadbeef
Gott
(Operator)


Wenn du

C++:
char *lcd_temp[20];


schreibst, ist lcd_temp kein Pointer auf ein Array, sondern ein Array von Pointern.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: