[cppll:0057] <tips>form
- Subject:
- [cppll:0057] <tips>form
- From:
- FUKUDA Fumiki <ffukuda@...>
- Date:
- Tue, 11 Dec 2001 18:16:58 +0900
- X-Mailer:
- WeMail32[1.42] ID:NTES00
- Message-Id:
- <200112110919.fBB9JMm4028442‐at‐tmg01.ntes.nec.co.jp>
επιστημηです。
printfの便利さから逃れられないヒトに:
#include <iostream> // wcout, endl
#include <locale> // locale
#include <string> // wstring
#include <cstdarg> // vsprintf/vswprintf
std::string form(const char* format, ...) {
char buffer[256];
va_list marker;
va_start(marker,format);
vsprintf(buffer, format, marker); // [*]
va_end(marker);
return buffer;
}
std::wstring form(const wchar_t* format, ...) {
wchar_t buffer[256];
va_list marker;
va_start(marker,format);
vswprintf(buffer, format, marker); // [*]
va_end(marker);
return buffer;
}
// [*] ホントは std::vsxxxx なんだが、VC6ではダメなのぢゃ
/*
* 使い方
*/
int main() {
std::locale::global(std::locale("japanese"));
std::cout << form("hello %s\n", "world");
std::wcout << form(L"こんにちは %s\n", L"日本");
return 0;
}
-----:-----:-----:-----:-----:-----:-----:-----:-----:-----
FUKUDA (episteme) Fumiki -- magical, but never a magic...
printfの便利さから逃れられないヒトに:
#include <iostream> // wcout, endl
#include <locale> // locale
#include <string> // wstring
#include <cstdarg> // vsprintf/vswprintf
std::string form(const char* format, ...) {
char buffer[256];
va_list marker;
va_start(marker,format);
vsprintf(buffer, format, marker); // [*]
va_end(marker);
return buffer;
}
std::wstring form(const wchar_t* format, ...) {
wchar_t buffer[256];
va_list marker;
va_start(marker,format);
vswprintf(buffer, format, marker); // [*]
va_end(marker);
return buffer;
}
// [*] ホントは std::vsxxxx なんだが、VC6ではダメなのぢゃ
/*
* 使い方
*/
int main() {
std::locale::global(std::locale("japanese"));
std::cout << form("hello %s\n", "world");
std::wcout << form(L"こんにちは %s\n", L"日本");
return 0;
}
-----:-----:-----:-----:-----:-----:-----:-----:-----:-----
FUKUDA (episteme) Fumiki -- magical, but never a magic...
▼ スレッド
- 57: printfの便利さから逃れられないヒトに: std::string form(const char* format, ...) { char buffer[256]; va_list marke FUKUDA Fumiki
- ├58: 非標準だけど glibc にも入っているからいいよね…(^^;; -[ Tietew ]-------------------------- メ : tietew@tiet Tietew
- │└59: _vsnprintf / _vsnwprintf だそうです。 @ VC++ FUKUDA (episteme) Fumiki -- magical, but never a magic... FUKUDA Fumiki
- │ └61: _vsnprintf(たぶん_vsnwprintfも)はstrncpy同様、バッファサイ ズが足りないと'\0'を埋め込んでくれない T.Sawamoto
- └60: で、仕事で使いたくて(MFCとSTLが使えないので)自作しようと思って、いろ いろと調べたんです DENCHU