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


C語言 fwscanf用法及代碼示例


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

用法:

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

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

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

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

參數

stream
指向一個指針FILE標識要從中讀取數據的輸入流的對象。
信息流尚未定向,或者wide-oriented(流上的第一個I /O操作確定它是否是字節-或者寬的-麵向,請參閱fwide)。
format
包含格式字符串的C寬字符串,其格式與格式scanf(參考scanf有關詳細信息)。
但是請注意,所有格式說明符的含義都與scanf;所以,%lc應用於讀取寬字符(而不是%c), 也%ls應該用於寬字符串(而不是%s)。
... (additional arguments)
取決於格式字符串,函數可能需要一係列附加參數,每個參數都包含一個指向分配存儲的指針,在該存儲中,提取的字符的解釋將以適當的類型存儲。
這些參數至少應與參數存儲的值數量一樣多。格式說明符。該函數將忽略其他參數。

返回值

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

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

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

示例

/* fwscanf example */
#include <stdio.h>
#include <wchar.h>

int main ()
{
  wchar_t str [80];
  float f;
  FILE * pFile;

  pFile = fopen ("myfile.txt","w+");
  fwprintf (pFile, L"%f %ls", 3.1416, L"PI");
  rewind (pFile);
  fwscanf (pFile, L"%f", &f);
  fwscanf (pFile, L"%ls", str);
  fclose (pFile);
  wprintf (L"I have read: %f and %ls \n",f,str);
  return 0;
}


此示例代碼創建一個名為myfile.txt並向其中寫入一個浮點數和一個字符串。然後,倒回該流,並使用讀取兩個值fscanf。最終產生類似於以下內容的輸出:
I have read: 3.141600 and PI

相關用法


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