fmtmsg(v) | C++ Coding

Andreas Hamm
staatlich geprüfter technischer Assistent für Informatik
Startseite Ι C++ Coding

fmtmsg

Formatieren einer Zeichenkette über variable Anzahl von Argumenten.


C++
template<class _Elem, class _Traits, class _Ax>
int fmtmsg(typename std::basic_string<_Elem, _Traits, _Ax>& _Message, const _Elem* _Format[, _Argument]...);


C
int _fmtmsg(char* _Message, size_t _Size, const char* _Format[, _Argument]...);
int _wfmtmsg(wchar_t* _Message, size_t _Size, const wchar_t* _Format[, _Argument]...);

Parameter

_Message

Zielpuffer für Rückgabe der formatierten Zeichenkette.

_Size

Größe des Puffers in Zeichen – maximale Anzahl der Zeichen ohne terminierende Null die in diesem Puffer gespeichert werden können.

_Format

Eine C-Zeichenkette mit Formatangabe – die Syntax der Formatangabe entspricht der von printf- bzw. wprintf-Funktionen. Der Reihenfolge der Parameter / Formatangaben in der Formatierunsvorlage folgend werden die Argumente eingesetzt.

_Argument

Optionale Argumente.


Rückgabewert

Anzahl der in den Puffer geschriebenen Zeichen ohne terminierende Null, andernfalls, wenn ein Fehler bei der Formatierung aufgetretten ist, gibt die Funktion einen negativen Wert zurück; Wenn _Message oder _Format ein Null-Zeiger ist, wenn die Größenangabe _Size Null ist, oder wenn die Formatangabe _Format ungültige Formatierungen enthält und die weitere Ausführung des Vorgangs zugelassen wird, liefert die Funktion -1 zurück und setzt errno auf EINVAL.


Siehe auch

fmtmsgv

C++ Quellcode

fmtmsg.hpp
Quellcode Auszug…
#pragma once

#include <stdarg.h>
#include <string>


// Forward declarations ...
template<class _Elem, class _Traits, class _Ax>
int fmtmsgv(typename std::basic_string<_Elem, _Traits, _Ax>& _Message, const _Elem* _Format, va_list _Ap);


template<class _Elem, class _Traits, class _Ax>
_inline
int fmtmsg(typename std::basic_string<_Elem, _Traits, _Ax>& _Message, const _Elem* _Format, ...)
{
va_list(_Ap);
va_start(_Ap, _Format);
const int _Retv = fmtmsgv(_Message, _Format, _Ap);
va_end(_Ap);
return _Retv;
}

C Quellcode

xfmtmsg.c
Quellcode Auszug…
#pragma once

#include <stdarg.h>
#include <ctype.h>
#include <wchar.h>


// Forward declarations ...
int _fmtmsgv(char* _Message, size_t _Size, const char* _Format, va_list _Ap);
int _wfmtmsgv(wchar_t* _Message, size_t _Size, const wchar_t* _Format, va_list _Ap);


int _fmtmsg(char* _Message, size_t _Size, const char* _Format, ...)
{
va_list(_Ap);
va_start(_Ap, _Format);
const int _Retv = _fmtmsgv(_Message, _Size, _Format, _Ap);
va_end(_Ap);
return _Retv;
}


int _wfmtmsg(wchar_t* _Message, size_t _Size, const wchar_t* _Format, ...)
{
va_list(_Ap);
va_start(_Ap, _Format);
const int _Retv = _wfmtmsgv(_Message, _Size, _Format, _Ap);
va_end(_Ap);
return _Retv;
}
Seitenanfang
Impressum Ι Rechtliche Hinweise Ι Haftungsausschluss Ι Nutzungsbedingungen