gpt4 book ai didi

c - 使用另一个文本文件中的值填充一个文本文件

转载 作者:行者123 更新时间:2023-11-30 16:46:03 24 4
gpt4 key购买 nike

我有以下文本文件 results.txt:

x y  u  v
3 2 10 12
3 3 10 15
3 4 11 15
5 1 10 12
5 2 12 13
5 3 9 9

现在我想从上面的文件中获取值 u 和 v 并将它们放入另一个文件中,其中 x 从 2 到 5,y 从 1 到 5,这样我就可以获得所需的输出:

2 1 
2 2
2 3
2 4
2 5
3 1
3 2 10 12
3 3 10 15
3 4 11 15
3 5
4 1
4 2
4 3
4 4
4 5
5 1 10 12
5 2 12 13
5 3
5 4
5 5

为了生成上述输出中的 x 和 y 值,我仅使用如下所示的循环:

#include <stdlib.h>
#include <stdio.h>

int main() {

float lat,lon;
int count;

count=1;

for ( lat = -70; lat <= 80; lat = lat + .125){
for ( lon = -179.875; lon <= 180; lon = lon + 0.125){
printf("%d) Value of lat/lon: %0.2f/%0.2f\n", count,lat,lon);
count=count+1;
if (xx= x && yy = y){
printf("%d %d %f %f\n",xx,yy,u,v)
}
else
{
printf("%d %d\n",x,y)

}
}
}

}

在上述 C 程序片段的上下文中,如何读取文件 results.txt 以及上述循环,以便当上述循环中的 x 和 y 值组合与结果中的 x 和 y 组合匹配时.txt(xx 和 yy)插入它会打印 results.txt 文件中的相应行吗?如何使用适当的读取语句调整上述程序以获得所需的输出结果?

最佳答案

好吧,让我告诉你我不明白你想用你的示例代码做什么。好像和你的问题没有关系:

filling in one text file with values from another text file

如果您已经填充了 results.txt 并且您希望按照您的定义填充第二个文件(我们将其称为 second.txt),那么您可以执行以下操作如下:

#include <stdio.h>
#include <stdlib.h>

int main() {
FILE* fp;
int x, y, i;
char found = 0;

int results[1024][4] = {};
int rows = 0;

/* Open the results.txt for read. */
fp = fopen("results.txt", "r");
if(fp == NULL)
exit(EXIT_FAILURE);

/* Parse results.txt line-by-line and store the values to results array. */
while(fscanf(fp, "%d %d %d %d\n",
&results[rows][0], &results[rows][1],
&results[rows][2], &results[rows][3]) == 4 && rows < 1024) {
printf("x: %d, y: %d, u: %d, v: %d\n", results[rows][0],
results[rows][1], results[rows][2], results[rows][3]);
rows++;
}

fclose(fp);

/* Open the second.txt for write. */
fp = fopen("second.txt", "w");
if(fp == NULL)
exit(EXIT_FAILURE);

for(x = 2; x <= 5; ++x) {
for(y = 1; y <= 5; ++y) {
found = 0;

/* Search for matching entry in results array. */
for(i = 0; i < rows; ++i) {
if(results[i][0] == x && results[i][1] == y) {
found = 1;
break;
}
}

if(found)
fprintf(fp, "%d %d %d %d\n", x, y, results[i][2], results[i][3]);
else
fprintf(fp, "%d %d\n", x, y);
}
}

fclose(fp);
exit(EXIT_SUCCESS);
}

上面的示例尚未优化,但经过测试并且有效。 results.txt 中的最大行数限制为 1024 行。

关于c - 使用另一个文本文件中的值填充一个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43903667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com