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

Merge 将两个文件正确合并并格式化为一个(C)(带参数),merge,formatting,vertices,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

几个月来,我一直在试图找到一个好方法来实现这一点,但仍然没有找到一个好方法来实现这一点。我尝试了许多不同的路线,但似乎仍然无法找到一条适合我需要的路线

我相信这其实是一个简单的解决办法,有人会帮助我完成这一点

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

一个文档如下所示:

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 
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
基本上,我要做的是,对于第二个文件中的每个数字,它的number get被替换为第一个文件中数字的内容及其属性

因此,一旦程序运行,第二个文件将如下所示:

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;
    };
#包括
文件*顶点;
文件*三角形;
文件*之后;
int顶点;
整数三角形;
int triPos[]={};
浮动texX,texY;
浮点texXPos[]={};
浮动texYPos[]={};
int main()
{
顶点=fopen(“texts.txt”、“r”);
三角形=fopen(“triangles.txt”,“r”);
after=fopen(“after.txt”,“w”);
对于(int i=0;i<15;i++)
{
fscanf(顶点,“%d=%f%f\n”、&vertex、&texX、&texY);
fscanf(三角形、%d\n、&triangle);
//设置正确的纹理索引
texXPos[i]=texX;
texYPos[i]=texY;
//设置直角三角形索引
triPos[i]=三角形;
//打印正确的纹理坐标
//坐标正在工作,但还不匹配
fprintf(在“%d=%.2f%.2f\n”之后,triPos[i]、texXPos[i]、texYPos[i]);
//fprintf(在“%.2f%.2f\n”之后,texXPos[i],texYPos[i]);
//fprintf(在“%d\n”之后,triPos[i]);
};
fclose(顶点);
fclose(三角形);
fclose(之后);
返回0;
};
如果有人真的对变量名感兴趣,我正在编辑OBJ文件


在这一点上,我感谢任何帮助。提前感谢。

在任何人找到此主题并回复之前,我只想让你知道我已经解决了我的问题。与%d读取第一个文档的内容不同,我发现%s更容易读取。我得到整个字符串,然后将它们放入一个数组中。这样,我就可以检查第二个文件中的数字是否等于第一个文件中的数字。我很高兴我自己找到了答案。无论如何,谢谢。在任何人找到这个话题并回复之前,我只是想让你知道我已经解决了我的问题。与%d读取第一个文档的内容不同,我发现%s更容易读取。我得到整个字符串,然后将它们放入一个数组中。这样,我就可以检查第二个文件中的数字是否等于第一个文件中的数字。我很高兴我自己找到了答案。谢谢你。