函式
<cstdio>

sscanf

int sscanf ( const char * s, const char * format, ...);
從字串讀取格式化資料
s 中讀取資料,並根據引數 format 將它們儲存到附加引數所給定的位置。這就像使用了 scanf,但它從 s 而不是標準輸入 (stdin) 讀取。

附加引數應該指向已分配的物件,其型別由 format 字串中相應的格式說明符指定。

引數

s
C 字串,函式將其作為源來處理以檢索資料。
format
C 字串,包含一個格式化字串,其遵循與 scanf 中的 format 相同的規範(詳見 scanf)。
... (附加引數)
根據 format 字串,該函式可能需要一系列附加引數,每個引數都包含一個指向已分配儲存空間的指標,其中提取的字元的解釋將以適當的型別儲存。
這些引數的數量至少應與格式說明符儲存的值的數量相同。多餘的引數會被函式忽略。

返回值

成功後,函式返回成功填充的引數列表中的專案數。在匹配失敗的情況下,此計數可以與預期的專案數匹配,或者更少(甚至為零)。
如果在任何資料可以被成功解析之前發生輸入失敗,則返回 EOF

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* sscanf example */
#include <stdio.h>

int main ()
{
  char sentence []="Rudolph is 12 years old";
  char str [20];
  int i;

  sscanf (sentence,"%s %*s %d",str,&i);
  printf ("%s -> %d\n",str,i);
  
  return 0;
}

輸出
Rudolph -> 12


另見