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


C語言 vscanf用法及代碼示例


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

用法:

int vscanf ( const char * format, va_list arg );
將格式化的數據讀入變量參數列表
從標準輸入讀取數據(stdin)並根據參數進行存儲格式進入由變量標識的變量參數列表中的元素所指向的位置arg

在內部,該函數從由以下項標識的列表中檢索參數:arg仿佛va_arg被用於它,因此狀態arg可能會因調用而改變。

在任何情況下,arg應該已經被初始化va_start在調用之前的某個時間點,預計它將被釋放va_end調用結束後的某個時間點。

參數

format
包含格式字符串的C字符串,其格式與格式scanf(參考scanf有關詳細信息)。
arg
一個值,該值標識用初始化的變量參數列表va_start
va_list是在中定義的特殊類型<cstdarg>

返回值

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

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

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

示例

/* vscanf example */
#include <stdio.h>
#include <stdarg.h>

void GetMatches ( const char * format, ... )
{
  va_list args;
  va_start (args, format);
  vscanf (format, args);
  va_end (args);
}

int main ()
{
  int val;
  char str[100];

  printf ("Please enter a number and a word: ");
  fflush (stdout);
  GetMatches (" %d %99s ", &val, str);
  printf ("Number read: %d\nWord read: %s\n", val, str);

  return 0;
}


可能的輸出:
Please enter a number and a word: 911 airport
Number read: 911
Word read: airport

相關用法


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