我需要将argv [1]和argv [2]变为不同的类型。我发现我只能使用sscanf()一次,或者无法检索argv中的下一个字符串。 这是我的代码。
int main( int argc, char *argv[])
{
char t;
float temp;
sscanf(argv[1], "-%[cf]",&t);
sscanf(argv[2], "%f", &temp);
return 0;
}
只有第一个sscanf()才能获得格式化的值。 我怎么能完成argv [2]?
答案 0 :(得分:3)
尝试在"%[]"
中保存字符串数据,导致未定义的行为(UB)。
// char t;
// sscanf(argv[1], "-%[cf]",&t);
char t[100];
if (sscanf(argv[1], "-%99[cf]",t) != 1) Handle_Failure();
期望与字符数组匹配。
t
推荐:
添加宽度限制(如99)以限制字符串输入。设置为小于sscanf()
的大小1
检查var sass = require('node-sass');
var app = new EmberApp({
sassOptions: {
functions: {
variable: function () {
return new sass.types.String(process.env.VARIABLE);
}
}
}
});
的返回值。