共用方式為


_cscanf、_cscanf_l、_cwscanf、_cwscanf_l

從主控台讀取格式化資料。 更多這些函式的可用安全版本,請參閱 _cscanf_s、_cscanf_s_l、_cwscanf_s、_cwscanf_s_l

重要

這個應用程式開發介面不能用於 Windows 執行階段執行的應用程式。如需詳細資訊,請參閱 /ZW 不支援 CRT 函式

int _cscanf( 
   const char *format [,
   argument] ... 
);
int _cscanf_l( 
   const char *format,
   locale_t locale [,
   argument] ... 
);
int _cwscanf( 
   const wchar_t *format [,
   argument] ... 
);
int _cwscanf_l( 
   const wchar_t *format,
   locale_t locale [,
   argument] ... 
);

參數

  • format
    格式控制字串。

  • argument
    選擇性參數。

  • locale
    使用的地區設定。

傳回值

已成功轉換和指定欄位的數目。 傳回值不包括讀取,但未指定的欄位。 傳回值是嘗試的 EOF 可以讀取檔案的結尾。 當輸入重新導向在作業系統命令列層級時,就會發生。 傳回值 0 表示沒有意義的欄位。

備註

_cscanf 函式會將資料直接從主控台輸入 argument指定的位置。 _getche 函式用來讀取字元。 所有可選參數都必須是變數的指標,這些變數的類型對應至 format 的類型規範。 格式控制輸入字段的解釋和具有相同的形式和功能的format 參數為 scanf 的函式。 當 _cscanf 通常回應輸入字元時,它不這樣做,如果最後一次呼叫是 _ungetch。

這個函式會驗證它的參數。 如果格式為 NULL, 則會叫用無效參數處理常式,如中所述參數驗證 。 如果允許繼續執行,errno 會設定為 EINVAL 且函式會傳回 EOF。

尾碼為 _l 的這些函式版本是一樣的,只不過它們使用傳入的地區設定,而不是目前執行緒的地區設定。

一般文字常式對應

TCHAR.H 常式

未定義 _UNICODE and _MBCS

已定義 _MBCS

已定義 _UNICODE

_tcscanf

_cscanf

_cscanf

_cwscanf

_tcscanf_l

_cscanf_l

_cscanf_l

_cwscanf_l

需求

常式

必要的標頭

_cscanf,_cscanf_l

<conio.h>

_cwscanf, _cwscanf_l

<conio.h> 或 <wchar.h>

如需相容性的詳細資訊,請參閱相容性

範例

// crt_cscanf.c
// compile with: /c /W3
/* This program prompts for a string
 * and uses _cscanf to read in the response.
 * Then _cscanf returns the number of items
 * matched, and the program displays that number.
 */

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int   result, i[3];

   _cprintf_s( "Enter three integers: ");
   result = _cscanf( "%i %i %i", &i[0], &i[1], &i[2] ); // C4996
   // Note: _cscanf is deprecated; consider using _cscanf_s instead
   _cprintf_s( "\r\nYou entered " );
   while( result-- )
      _cprintf_s( "%i ", i[result] );
   _cprintf_s( "\r\n" );
}

輸入

1 2 3

Output

Enter three integers: 1 2 3
You entered 3 2 1

請參閱

參考

主控台和連接埠 I/O

_cprintf、_cprintf_l、_cwprintf、_cwprintf_l

fscanf、_fscanf_l、fwscanf、_fwscanf_l

scanf_s、_scanf_s_l、wscanf_s、_wscanf_s_l

sscanf、_sscanf_l、swscanf、_swscanf_l