Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Char in Cstring konvertieren

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 <
000
10.11.2003, 15:02 Uhr
MasterThomsen



Hey Leute,

ich habe folgendes Problem. Ich will über ein Editfeld einen 3-stelligen hexadezimalen Wert ein- und ausgeben lassen, den ich in einer Intergervariable speichere.

Mein Code für die Ausgabe schaut inzwischen wie folgt aus:

C++:
void CAddressingTab::OnShowWindow(BOOL bShow, UINT nStatus)
{
    CTabPageSSL::OnShowWindow(bShow, nStatus);
    
    char COA[10];
    char CSA[10];

    _itoa(reg[2][0],COA,16);
    SetDlgItemText( IDC_OA, COA );

    _itoa(reg[2][1],CSA,16);
    SetDlgItemText( IDC_SA, CSA );

    // TODO: Add your message handler code here
    
}


Wie kann ich jetzt noch an COA und CSA ein "h" für hexadezimal anhängen und ausgeben? Habe es über COA + "h" versucht, aber das geht nicht (cannot add two pointers). Muss ich dazu in einen CString konvertieren und wenn ja wie. Gleich als CString auslesen geht auch nicht.

Für die Eingabe soll am besten immer schon das "h" in dem Textfeld vorhanden sein oder von selbst gesetzt werden. Wie mache ich das und wie erkenne ich, dass der eingegebene String im Format 3e8h eigegeben wurde. Wie kann ich das h wieder von der Hexa-Zahl wieder trennen, um es in ein Integer umzuwandeln?

So viele Fragen. Wer kann mir helfen

--edit -- Code-Tag gesetzt

Dieser Post wurde am 10.11.2003 um 16:20 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.11.2003, 15:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


trennen kannst du das indem du das h einfach nicht mit abspeicherst sondern nur mit anzeigst.


C++:
sprintf(COA"%xh",reg[2][0]);

//oder du nimmst gleich nen CString
CString str;
str.Format("%xh",reg[2][0]);

//oder so
CString str=_itoa(reg[2][0],COA,16);
str+='h';


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.11.2003, 15:38 Uhr
MasterThomsen



Danke, das fuktioniert.

Wie kann ich jetzt für den über GetDlgItemText( IDC_OA, OA); eingelesene CString auf die einzelnen Zeichen zugreifen und kontrollieren, ob auch wirklich nur 0 bis f vorkommt und ob als letztes bereits ein 'h' steht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.11.2003, 15:44 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wenn du einen CString hast kannst du genauso wie bei nem char array mittels dieses operators [] auf die einzelnen zeichen direkt zugreifen.
oder du verwendest bei nem CString direkt irgendwelche Methoden die dir die Klasse mitliefert.
also z.b. einfach mit ner schleife durchlaufen
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 10.11.2003 um 15:44 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.11.2003, 16:04 Uhr
MasterThomsen



Danke für die schnelle Hilfe

Hab jetzt das mit dem 'h' in den Griff bekommen.

C++:
    CString OA;

    GetDlgItemText( IDC_OA, OA);


    if (OA[OA.GetLength()-1] != 'h')
    {
        OA+='h';
        SetDlgItemText( IDC_OA, OA);
    }



--edit -- Code-Tag gesetzt

Dieser Post wurde am 10.11.2003 um 16:22 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


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: