Avatar billede bluwduch Nybegynder
25. september 2002 - 09:00 Der er 17 kommentarer og
1 løsning

konvertere int værdi til string hex i C

Jeg har det problem at jeg skal bruge en funktion som ud fra en int værdi kan returnere en string indeholdende værdien konverteret til hexadecimal repræsentation. F.eks en int med værdien 9382 bliver til en string med "24A6"... Hvordan ser en sådan funktion ud??
Avatar billede jpk Nybegynder
25. september 2002 - 09:05 #1
int nIntVal=9382;
char buffer[33];
printf(buffer, "0x%x", count, count, count, count , nIntVal);
Avatar billede jpk Nybegynder
25. september 2002 - 09:06 #2
Ups, lidt for meget med...

int nIntVal=9382;
char buffer[33];
printf(buffer, "0x%x", nIntVal);
Avatar billede bluwduch Nybegynder
25. september 2002 - 09:25 #3
Jamen jeg skulle returnere værdien og så måske skrive den ud senere, og når jeg gør det med dit eksempel får jeg "warning: makes pointer from integer without a cast".
Avatar billede jpk Nybegynder
25. september 2002 - 09:33 #4
#include "stdafx.h"
#include <stdio.h>
#include <string>
using std::string;

string ToHex(int nVal)
{
    char buffer[33];
    sprintf(buffer, "0x%x", nVal);
    return string(buffer);
}

int main(int argc, char* argv[])
{

    int nIntVal=9382;
    string strVal = ToHex(nIntVal);

    return 0;
}
Avatar billede bluwduch Nybegynder
25. september 2002 - 09:45 #5
Hej jpk...
stdafx.h?? den er ikke inkluderet i den gcc jeg arbejder med??
Avatar billede jpk Nybegynder
25. september 2002 - 09:47 #6
glem den...
Avatar billede bluwduch Nybegynder
25. september 2002 - 09:49 #7
Når jeg kun kører din kode... "får jeg string: no such file or directory"
Avatar billede bluwduch Nybegynder
25. september 2002 - 09:53 #8
Du manglede et .h efter string.. men da jeg satte det på, fik jeg:
Parseerror before std.
String undeclared
parseerror before StrVal.
Avatar billede jpk Nybegynder
25. september 2002 - 09:55 #9
string er nu, som standard, en del af C++, måske du ikke har de nyeste libs..?

Du kan også vælge at gøre således:

#include <stdio.h>

void ToHex(int nVal, char* pResult)
{
    sprintf(pResult, "0x%x", nVal);
}

int main(int argc, char* argv[])
{

    int nIntVal=9382;
    char retVal[33];
    ToHex(nIntVal, retVal);

    return 0;
}

retVal indeholder så strengen efter funktionen er kaldt...
Avatar billede bluwduch Nybegynder
25. september 2002 - 09:57 #10
Det er ikke C++ jeg arbejder med... læs subject, det er C!
Avatar billede jpk Nybegynder
25. september 2002 - 09:58 #11
Nej, der mangler ikke noget .h
Således skrives STL includes!
Avatar billede jpk Nybegynder
25. september 2002 - 10:02 #12
Okay, det er C, men hvis du vidste hvor mange spørgsmål der kommer hvor subject siger C, men hvor folk i virkeligheden leder efter en C++-løsning...

Nu skrev du jo at funktionen skulle returnerer en string, altså troede jeg at det var en STL string og dermed C++!
Avatar billede bluwduch Nybegynder
25. september 2002 - 10:04 #13
Okay...
Nå men hvordan gør man så i C??
Avatar billede jpk Nybegynder
25. september 2002 - 10:05 #14
Virker mit ovenstående indlæg (af 25/09-2002 09:55:50) ikke?
Avatar billede bluwduch Nybegynder
25. september 2002 - 10:07 #15
Jo, men den returnere ikke noget... og når jeg prøver at modeficere det så den gør, får jeg errors...
Avatar billede jpk Nybegynder
25. september 2002 - 10:08 #16
"retVal indeholder så strengen efter funktionen er kaldt..."
Avatar billede bluwduch Nybegynder
25. september 2002 - 10:11 #17
Jep... du har ret Takker!
Avatar billede jpk Nybegynder
25. september 2002 - 10:13 #18
Velbekomme og selv tak...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester