我对编程世界还不熟悉,如果这是一个常见的错误,请原谅我。
我正在尝试从一个输入字符串中扫描3个双值和3个字符串,但在第二个值之后它不会继续。
double total_weight_kg(char *s, int Length) {
double weights[3];
char units[3];
int test = sscanf(s, "%lf, %s, %lf, %s, %lf, %s",
&weights[0], &units[0],
&weights[1], &units[1],
&weights[2], &units[2]);
printf("%i\n", test);
printf("%s\n", &units[0]);
int main(void) {
total_weight_kg("5, g, 1, t, 175, kg", 3);
return 0;
第一张打印输出2,第二张打印出g。
此外,我想在循环中比较单位[i],但似乎无法使其正常工作。
for (int i = 0; i < Length; i++) {
w = weights[i];
if (strcmp(units[i], "kg") == 0) {
weight += w;
}
}
我希望你能帮助我找到解决这个问题的方法,
编辑:现在正在按预期工作。非常感谢您的帮助。 (19 [^,]是一个主要问题)