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 Asus
01. februar 2007 - 23:58
#1
har sat og rodet lidt med atoi, men jeg syntes ikke rigtig jeg kan få det til at funke :(
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:14
#3
Det forudsætter dog at det altid er 4 tegn til hver tal. Og det skulle ikke have været et svar, vil du være så venlig at afvise det?
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; }
02. februar 2007 - 14:41
#5
okay, men det funker ellers, hvorfor så ikke svar :o
03. februar 2007 - 01:31
#6
Jeg samler ikke på point.
03. februar 2007 - 11:56
#7
okay, men takker mange gange så :)
Kurser inden for grundlæggende programmering