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更容易读取。我得到整个字符串,然后将它们放入一个数组中。这样,我就可以检查第二个文件中的数字是否等于第一个文件中的数字。我很高兴我自己找到了答案。谢谢你。