我的问题是,是否可以直接将解析后的内容从(s)scanf传递给函数调用。换句话说,我是否必须初始化我想传递给函数的变量(并通过scanf读取)。
答案 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;
}
你可以调用你需要的任何功能。