我一直试图找出一个很好的方法来实现这个好几个月,但仍然没有找到一个好方法来使它工作。我尝试了很多不同的路线,但似乎无法管理一个适合我需要的路线。
我确信这实际上是一个简单的解决方案,那里的某个人将能够帮助我实现这一目标。
我有一个程序,它将两个文本文档合并并将它们格式化为一个。
一份文件如下:
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文件。
到目前为止,我感谢任何帮助。提前谢谢。