當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C語言 wscanf用法及代碼示例


C語言wchar頭文件(wchar.h)中wscanf函數的用法及代碼示例。

用法:

int wscanf (const wchar_t* format, ...);
從標準輸入中讀取格式化的數據
從讀取數據stdin並根據C寬字符串存儲它們格式到附加參數所指向的位置。

附加參數應指向已分配的對象,這些對象的類型由其對應的格式說明符在格式細繩。

寬字符的外部表示stdin是多字節字符:這些字符的翻譯方式就像mbrtowc被稱為(使用的內部mbstate_t目的)。

這是寬字符等價於scanf(<cstdio>)。

參數

format
包含格式字符串的C寬字符串,其格式與格式scanf(參考scanf有關詳細信息)。
但是請注意,所有格式說明符的含義都與scanf;所以,%lc應用於讀取寬字符(而不是%c), 也%ls應該用於寬字符串(而不是%s)。
... (additional arguments)
取決於格式字符串,函數可能需要一係列附加參數,每個參數都包含一個指向分配存儲的指針,在該存儲中,提取的字符的解釋將以適當的類型存儲。
這些參數至少應與參數存儲的值數量一樣多。格式說明符。該函數將忽略其他參數。

返回值

成功時,該函數返回已成功填充的參數列表的項目數。由於匹配失敗,讀取錯誤或到達的範圍,此計數可以與預期的項目數匹配或更少(甚至為零)。文件結束

如果發生讀取錯誤或文件結束讀取時到達指示符,設置了正確的指示符(feof或者ferror)。而且,如果在成功讀取任何數據之前發生了任何一種情況,EOF返回。

如果在解釋寬字符時發生編碼錯誤,則該函數會設置errnoEILSEQ

示例

/* wscanf example */
#include <wchar.h>

int main ()
{
  wchar_t str [80];
  int i;

  wprintf (L"Enter your family name: ");
  wscanf (L"%ls",str);
  wprintf (L"Enter your age: ");
  wscanf (L"%d",&i);
  wprintf (L"Mr. %ls, %d years old.\n",str,i);
  wprintf (L"Enter a hexadecimal number: ");
  wscanf (L"%x",&i);
  wprintf (L"You have entered %#x (%d).\n",i,i);

  return 0;
}


可能的輸出:
Enter your family name: Soulié
Enter your age: 29
Mr. Soulié, 29 years old.
Enter a hexadecimal number: ff
You have entered 0xff (255).

相關用法


注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C wscanf function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。