Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

wvsprintfW


Rekomendowane odpowiedzi

Opublikowano

Czy ktos z was ma pojecie skad wziela sie ta nazwa?

 

"write variadinc string print format unicode" to jedyne co przychodzi mi do glowy, ale to nie brzmi jakos sensownie, a ten problem nie daje mi spokoju.... :)

Opublikowano

masz suffix A i W.. A oznacza ANSII (1bajt), a W - WideChar(2bajty).. Wielkosc tych typow danych zalezy od systemu.. Na windowsie inaczej to wyglada, na linuxie jeszcze inaczej.

 

printf to funkcja wyswietlajaca cos w konsoli, przekierowuje do buffora. Pierwszy parametr to format

sprintf to funkcja ktora poprostu zapisuje w naszym buforze podanym jako pierwszy parametr. Pierwszy parametr to output, drugi parametr to format

 

to mi smierdzi na Microsoftowy s**t :)
Ogolnie "wvsprintf" jest typem TCHAR-em, a przyjmuje pointer na string, czyli w zaleznosci w jakim kodowaniu kompilujemy "Unicode" czy "ANSII".. dostosowuje sie do wybranego kodowania... dla Unicode to WCHAR, dla ANSII zwykly char

 

czyli:

 

 

https://msdn.microsoft.com/en-us/library/windows/desktop/ms647551(v=vs.85).aspx

Opublikowano

printf - print formatted
sprintf - print formatted to string
vsprintf - print formatted to string using variable argument list
vsprintfW - print formatted to wide-character string using variable argument list
 
Natomiast to pierwsze 'w' jest naleciałością ze starego windows'a (chyba nawet 3.1) i najprawdopodobniej ta literka oznacza właśnie Windows.
Była to inna wersja sprintf'a, bodajże lepiej zoptymalizowana. Wtedy nie obsługiwano jeszcze floatów, dlatego nie można ich w tej funkcji używać. Poza tym, output buffer jest ograniczony do 1024 znaków.
@up od TCHARów jest _vstprintf.

Skończ proszę się kompromitować. Jesteś nikim.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...