C-从格式化文本文件中读取包含整数的字符串

我有一个文本文件,格式如下:

Thing 1: 0 0 128
Other thing: 255 64 255
Something else: 32 32 8

我打算最终向这个文件添加更多内容,但格式将保持不变。我想要做的是将冒号之前的所有内容读取到字符串中,将冒号之后的所有内容作为整数读取。我试过了:

fscanf((file = fopen("colors.txt", "r")) == NULL){
    return -1;
}

fscanf("%s: %d %d %d", colorStr, &r, &g, &b);

while(!feof(file)){
    printf("%s: %d %d %d", colorStr, r, g, b);
    fscanf(file, "%s: %d %d %d", colorStr, &r, &g, &b);
}

fclose(file);

但是,我得到以下输出:

Thing 1:: 0 0 0
0: 0 0 0
0: 0 0 0
128: 0 0 0

诸若此类。理想情况下,输出应如下所示:

Thing 1: 0 0 128
Other thing: 255 64 255
Something else: 32 32 8

我该如何解决这个问题呢?前面已经在程序中设置了colorStrrgb变量。

转载请注明出处:http://www.bizarre-animals.com/article/20230401/1899387.html