ANSI C:将变量从(s)scanf传递给函数调用

时间:2011-05-22 17:35:37

标签: c function call scanf

我的问题是,是否可以直接将解析后的内容从(s)scanf传递给函数调用。换句话说,我是否必须初始化我想传递给函数的变量(并通过scanf读取)。

2 个答案:

答案 0 :(得分:2)

sscanf返回成功转化的次数。它不返回转换后的值。

因此,当将sscanf的返回值直接传递给另一个函数时,您不会传入新转换的数据(如果这就是您要求的那样)。

答案 1 :(得分: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;
}

你可以调用你需要的任何功能。