Moin,
ich suche eine snprintf_s - Funktion, die bei einer MAX Zahl von Zeichen
das kopieren aufhört, den string NULL terminiert und weitermacht, aber
keinen Programmabsturz verursacht.
Nach dem Wälzen der MSDN habe ich die abenteuerlichsten Formen gefunden,
aber keine macht genau dies.
Weiss jemand von euch Rat?
Deine Beschreibung klingt so, als würdest Du snprintf() suchen - aber
das hast Du ja bereits erwähnt. Insofern verstehe ich Deine Frage nicht
so recht.
1
int snprintf(char *str, size_t size, const char *format, ...)
"Writes output to the string str, under control of the format string
format, that specifies how subsequent arguments are converted for
output. It is similar to sprintf(3), except that size specifies the
maximum number of characters to produce. The trailing nul character is
counted towards this limit, so you must allocate at least size
characters for str."
Gruß,
Max
P.S.: wie setzt man im Forum einen ganzen Absatz kursiv?
l0wside schrieb:> P.S.: wie setzt man im Forum einen ganzen Absatz kursiv?
Gar nicht. Es ist vom Forenbetreiber gewünscht, daß mit Textauszeichnung
sparsam umzugehen ist.
l0wside schrieb:> P.S.: wie setzt man im Forum einen ganzen Absatz kursiv?
Dafür gibt es hier leider keine vernünftige Lösung. Normalerweise macht
man dafür ein Kursiv-Tag zu Beginn des Absatzes und ein schließendes
Kursiv-Tag am Ende, und die Foren-Software wertet dies entsprechend aus.
Rufus Τ. Firefly schrieb:> Gar nicht. Es ist vom Forenbetreiber gewünscht, daß mit Textauszeichnung> sparsam umzugehen ist.
Wenn ich jetzt einen Absatz von gerade mal drei Zeilen kursiv machen
will, und der Text ja normalerweise auch Satzzeichen enthält, dann muss
ich für jede Zeile die Schrägstriche setzen und jedesmal wenn
Interpunktion auftaucht nochmal extra. Ist dies wirklich eine
vernünftige Lösung?
NULL ist die Bezeichnung für einen ungültigen Zeiger.
Ein String wird mit dem Zeichen '\0' terminiert.
Letztendlich hat zwar beides den Wert 0, die Bedeutung ist jedoch
unterschiedlich.
Mark Brandis schrieb:> Ist dies wirklich eine vernünftige Lösung?
Wie ich schon schrieb:
> Es ist vom Forenbetreiber gewünscht, daß mit Textauszeichnung> sparsam umzugehen ist.
Ganze Absätze, auch wenn sie nur drei Zeilen enthalten, fallen nicht
mehr unter "sparsam".
Eine Möglichkeit, etwas deutlich als (nichtgrünes) Zitat hervorzuheben,
sind die [prе][/prе]-Tags, dann muss man sich allerdings selbst um den
Zeilenumbruch kümmern.
Das Beispiel hier sähe dann so aus:
_TRUNCATE wird irgendwas a'la -1 oder so sein, eine "unmögliche Zahl" in
diesem Kontext.
Natürlich muss man dem sprintf die bufSize mitgeben, sonst nutzt der
_TRUNCATE nix (der in diesem Fall als bufSize interpretiert wurde...).
VG,
/th.