โมฆะ FormatV (LPCTSTR lpszFormat, va_list argList );
พารามิเตอร์
lpszFormat
สตรูปแบบตัวควบคุม?
argList
รายการของอาร์กิวเมนต์ที่จะถูกส่งผ่าน?
หมายเหตุ
การเรียกฟังก์ชันนี้สมาชิกเขียนสายอักขระการจัดรูปแบบและรายการของอาร์กิวเมนต์ตัวแปรไปยังCStringวัตถุในแบบเดียวกับที่vsprintfจัดรูปแบบข้อมูลลงในอาร์เรย์เป็นอักขระแบบ C ฟังก์ชันนี้จัดรูปแบบ และการจัดเก็บชุดของตัวอักษรและค่าในCString สายอักขระและอาร์กิวเมนต์จะแปลง และแสดงผลตามการที่ข้อมูลจำเพาะรูปแบบที่สอดคล้องกันในlpszFormat?
การโทรจะล้มเหลวถ้าสตริวัตถุถูกเสนอเป็นพารามิเตอร์การFormatV ตัวอย่างเช่น รหัสต่อไปนี้:
CString str = "บางข้อมูล"
strFormatV ("% s % d ", str, 123); nbsp / / หันมาสนใจตน: str จะใช้ในรายการพารามิเตอร์(&N)
จะทำให้เกิดผลลัพธ์ที่ไม่อาจคาดเดา?
ดูข้อมูลเพิ่มเติม vsprintfในการอ้างอิงไลบรารีรันไทม์?
ตัวอย่าง
//Using CString::FormatV() คุณสามารถเขียนฟังก์ชันดังต่อไปนี้:
โมฆะ WriteLogEntry (CStdioFileamp; refFile, LPCTSTR pstrFormat,...)
{
CTime timeWrite
timeWrite = CTime::GetCurrentTime()
/ / เขียนเวลาออก
CString str = timeWrite.Format ("%d %b %y % H: % M: % S-");
refFile.Write (str, strGetLength(&))
/ / การจัดรูปแบบ และเขียนข้อมูลเราได้รับ
มีอาร์กิวเมนต์ va_list
va_start (มีอาร์กิวเมนต์ pstrFormat);
strFormatV (pstrFormat มีอาร์กิวเมนต์);
refFile.Write (str, strGetLength())
/ / ใส่ตัวอักขระขึ้นบรรทัดใหม่
refFile.Write ("\n", 1);
กลับ
}
คุณสามารถเรียกใช้ฟังก์ชันข้างบน ด้วยหมายเลขใด ๆ ของพารามิเตอร์ ตัวอย่าง:
nbsp WriteLogEntry (fileLog "โปรแกรมเริ่มต้น");
WriteLogEntry (fileLog "ไบต์ Processed %d", 91341);
WriteLogEntry (fileLog, "%d พบข้อผิดพลาดในบรรทัดที่ %d", 10, 1351);
WriteLogEntry (fileLog "โปรแกรมเสร็จสมบูรณ์")(&N)
ซึ่งจะเพิ่ม outputnbsp แฟ้มของคุณ fileLog ที่คล้ายกับต่อไปนี้(&N):
nbsp 17 97 Apr 12:34:53 - โปรแกรมเริ่มต้น
17 97 Apr 12:34:59 - ประมวลผล 91341 ไบต์
17 97 Apr 12:35:22-10 ข้อผิดพลาดที่พบในบรรทัดที่ 1351
17 97 Apr 12:35:23 - โปรแกรมที่สมบูรณ์(&N)
ภาพรวม CString |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCString::Format, va_start(&N)