正确合并并将两个文件格式化为一个(C)(带参数)

时间:2017-06-27 00:05:55

标签: merge formatting vertices

我一直试图找出一个很好的方法来实现这个好几个月,但仍然没有找到一个好方法来使它工作。我尝试了很多不同的路线,但似乎无法管理一个适合我需要的路线。

我确信这实际上是一个简单的解决方案,那里的某个人将能够帮助我实现这一目标。

我有一个程序,它将两个文本文档合并并将它们格式化为一个。

一份文件如下:

1 = 0.61 0.42 
2 = 1.00 0.51 
3 = 0.83 0.94 
4 = 0.43 1.00 
5 = -0.00 0.37 
6 = 0.25 0.00 
7 = 0.59 0.11 

另一个看起来像这样:

1
2
3
1
3
4
1
4
5
1
5
6
1
6
7

基本上,我想要做的是第二个文件中的每个数字,它的数字被第一个文件中的数字及其属性的内容替换。

因此,一旦程序运行,第二个文件看起来就像这样:

1 = 0.61 0.42 
2 = 1.00 0.51 
3 = 0.83 0.94 
1 = 0.61 0.42 
3 = 0.83 0.94 
4 = 0.43 1.00 
1 = 0.61 0.42 
4 = 0.43 1.00 
5 = -0.00 0.37
1 = 0.61 0.42 
5 = -0.00 0.37
6 = 0.25 0.00 
1 = 0.61 0.42 
6 = 0.25 0.00 
7 = 0.59 0.11 

这是我的代码,万一有人好奇。请记住,它经历了很多,所以一些代码已被“评论”了。之前有一个更大的代码块,但它主要是我尝试过的工作不起作用。

#include <iostream>

FILE *vertices;
FILE *triangles;
FILE *after;

int vertex;

int triangle;
int triPos[] = {};

float texX, texY;
float texXPos[] = {};
float texYPos[] = {};

int main()
    {
    vertices = fopen("vertices.txt", "r");
    triangles = fopen("triangles.txt", "r");
    after = fopen("after.txt", "w");

    for (int i = 0; i < 15; i++)
        {
        fscanf(vertices, "%d = %f %f \n", &vertex, &texX, &texY);

        fscanf(triangles, "%d \n", &triangle);

        //set the right texture index
        texXPos[i] = texX;
        texYPos[i] = texY;

        //set the right triangle index
        triPos[i] = triangle;

        //prints the right texture coordinates
        //coordinates are working, but don't match yet

        fprintf(after, "%d = %.2f %.2f \n", triPos[i], texXPos[i], texYPos[i]);
        //fprintf(after, "%.2f %.2f \n", texXPos[i], texYPos[i]);
        //fprintf(after, "%d \n", triPos[i]);
        };

    fclose(vertices);
    fclose(triangles);
    fclose(after);

    return 0;
    };

如果有人对变量名称感到好奇,我正在编辑OBJ文件。

到目前为止,我感谢任何帮助。提前谢谢。

0 个答案:

没有答案