01. februar 2007 - 23:39
Der er
6 kommentarer og 1 løsning
Lave en tekst streng om til en nummer (meget specielt)
Hejsa eksperter (igen) :) Jeg har en masse filer som har et navn.. f.eks 7ff88000.fil (f.eks) jeg skal have navnet lavet om fra hex til decimal f.eks 7ff8 = 32760 8000 = 32768 hvordan kan det lade sig gøre i C++ ? jeg har allerede sådan jeg kan læse navnet på filen fra dir, og den læser det ind som skrevet (i char) sidder og bøvler lidt med det, og lidt hjælp ville hjælpe en del :) Tak
Annonceindlæg fra Kingston Technology
02. februar 2007 - 00:13
#2
#include <sstream> #include <string> #include <iostream> #include <iomanip> int FromString(const std::string& arg) { std::stringstream SS(arg); int i; SS >> std::hex >> i; return i; } int main() { char inp[] = "7ff88000.fil"; std::cout << FromString(std::string(inp).substr(0, 4)) << ", " << FromString(std::string(inp).substr(4, 8)) << std::endl; }
02. februar 2007 - 00:25
#4
Man kan naturligvis også: #include <iostream> #include <sstream> unsigned int FromString(const std::string& arg) { std::stringstream SS(arg); int i; SS >> std::hex >> i; return i; } int main() { char inp[] = "7ff88000.fil"; unsigned int N = FromString(inp); std::cout << int(N >> 16) << ", " << int(N & 0xFFFF) << std::endl; }