VC++: Verwendung des Befehls "snprintf"?

  • Themenstarter Themenstarter Rushjo
  • Beginndatum Beginndatum
R

Rushjo

Guest
Hi,

also ich wollte in "VC++" den Befehl "snprintf" verwenden, um "formatiert"
die Zeichen eines Strings Zeichen für Zeichen in einen anderen String einzulesen.
Das geht in "VC+*" ja mit "snprintf", daher habe ich mir "snprintf" als "_snprintf"
definiert.

Code:
#define snprintf _snprintf

......

	snprintf(string2, "%x", string1[a]);

......

Als Fehlermeldung bekomme ich folgende Antwort von "VC++":

Fehlermeldung von "VC++"
'_snprintf' : Konvertierung des Parameters 1 von 'char' in 'char *' nicht moeglich

Nur damit kann ich wenig anfangen. Kann mir einer helfen?

Thx & MfG Rushjo
 
IMHO ist snprintf folgendermaßen definiert:
int snprintf(char *str, size_t size, const char *format, ...);

Wie wurden eigentlich string1 und string2 definiert?
 
@lagalopex

Sie wurden definiert als:

Code:
char string1, string2;

Warum die Frage?

Es geht um Windows! Dort gibt es soweit ich weiss kein "snprintf", sondern
"_snprintf".

MfG Rushjo
 
snprintf will als ersten Parameter einen Zeiger auf einen String.
char string1; //<- ist kein String
char string2[10]; //<- ist ein String der Länge 10

Also musst du:
:
char string2[10];
:
snprintf(string2,sizeof(string2), "%x", string1[a]);
:
schreiben.

PS: snprintf ist bloß eine erweiterte Form von sprintf. Man kann nämlich eine Länge mit angeben, dadurch können Buffer-Overflows vermieden werden...

btw: "Es geht um Windows! Dort gibt es soweit ich weiss kein 'snprintf', sondern
'_snprintf'. "
Windows != MSVC++
es geht meh oder minder um den Compiler/Linker/Header/...
 
Zurück
Oben