2011-05-22 61 views
-2

我的問題是,是否有可能將(s)scanf中分析的東西直接傳遞給函數調用。換句話說,我是否必須初始化我想傳遞給函數的變量(並通過scanf讀取)。ANSI C:將變量從(s)scanf傳遞到函數調用

+4

請舉例說明你的意思。 – 2011-05-22 17:37:34

+0

我將一個字符串分成不同的'變量'(藝術家,標題,流派),我需要那些將它們傳遞給函數。 – Asmodiel 2011-05-22 17:44:51

+2

我的意思是基於代碼的例子,你想做什麼。 – 2011-05-22 17:46:09

回答

2

sscanf返回成功轉換次數。它不會返回轉換後的值。

因此,在將返回值sscanf直接傳遞給另一個函數時(如果這是您要求的),您不會傳遞新轉換的數據。如其他人所說,

1

sscanf不會返回值,所以沒有「直接」通過它們。然而,你可以用這樣的東西包裝它:

struct mydata* parse(char* string) { 
    struct mydata* ret = (struct mydata*) malloc(sizeof(struct mydata)); 

    sscanf(string, /* load the structure with the data */); 

    return ret; 
} 

你可以調用你需要的任何函數。