使用c++ 构造Set()函数读取坐标
时间: 2024-05-15 21:16:58 浏览: 10
以下是一个使用 C 语言编写的示例 Set() 函数,它从文件中读取坐标并将其存储到一个集合中:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_COORDS 1000 // 最多存储的坐标数量
typedef struct {
int x;
int y;
} Coord;
typedef struct {
Coord coords[MAX_COORDS];
int num_coords;
} CoordSet;
CoordSet Set(char *filename) {
CoordSet coords;
FILE *fp;
int x, y;
fp = fopen(filename, "r");
if (fp == NULL) {
printf("Error opening file.\n");
exit(1);
}
coords.num_coords = 0;
while (fscanf(fp, "%d %d", &x, &y) == 2) {
if (coords.num_coords >= MAX_COORDS) {
printf("Too many coordinates.\n");
exit(1);
}
coords.coords[coords.num_coords].x = x;
coords.coords[coords.num_coords].y = y;
coords.num_coords++;
}
fclose(fp);
return coords;
}
int main() {
CoordSet coords = Set("coordinates.txt");
printf("Number of coordinates: %d\n", coords.num_coords);
for (int i = 0; i < coords.num_coords; i++) {
printf("(%d, %d)\n", coords.coords[i].x, coords.coords[i].y);
}
return 0;
}
```
在上面的示例中,我们首先定义了两个结构体:`Coord` 表示一个二维坐标点,`CoordSet` 包含一个 `Coord` 数组和一个整数,用于存储一组坐标。
在 `Set()` 函数中,我们首先打开指定的文件,然后在一个循环中,使用 `fscanf()` 函数逐行读取文件中的坐标,将它们存储到 `CoordSet` 结构体中。如果读取的坐标数超过了 `MAX_COORDS`,则会发生错误并退出程序。
最后,我们在 `main()` 函数中调用 `Set()` 函数并打印出读取的坐标。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)