Immer eine hexadezimale Zahl in ein Programm über die Kommandozeile

Kann ich dies tun:

int main(int argc, char** argv) {
  unsigned char cTest = 0xff;
  return 0;
}

Aber was ist der richtige Weg, um eine hexadezimale Zahl in das Programm über die Kommandozeile?

unsigned char cTest = argv[1];

nicht den trick tun. Das erzeugt eine Initialisierung macht Ganzzahl von Zeiger ohne cast Warnung.

  • Befehl Linie Argumente sind immer - strings. Einige Plattformen machen Sie zu Unicode, in dem Fall eine einfache strtol wird nicht funktionieren.
  • in dem Fall mbstol oder was auch immer die multibyte or wide char (oder TCHAR) Varianten abdecken würde, dass? (Ich habe auch Zweifel, dies ist ein wichtiges Anliegen, angesichts der Natur der Frage
  • in diesem Fall ist der zweite parameter von main() nicht der Typ char **? Das kann man nicht Normen-konform.
  • Sie konnte immer noch werden multi-byte in dem Fall mbstoul wäre am besten, aber das ist viel zu viel Phantasie in den Kontext der Frage dünkt mich
InformationsquelleAutor Pieter | 2010-01-29
Schreibe einen Kommentar