我必须编写一个程序来打开文件并读取每一行,直到达到 EOF。文件中的每一行都有两个 double 值,表示二维空间中的一个点。对于每条线,读取两个值,创建一个点,如果该点位于坐标平面的第一象限,则打印该点。
好的!所以这是我的代码:
#include <stdlib.h>
#include "point.h"
FILE *open_file(char const name[], char const mode[])
{
FILE *file;
file = fopen("test_points.txt", "r");
if (file == NULL)
{
perror("Error!\n");
}
return file;
}
int point is_positive(double x, double y)
{
struct point p;
int a;
if (p.x >= 0 && p.y >= 0)
{
a = 1;
}
else
{
a = 0;
}
return a;
}
void point_in_Q1(FILE *in, FILE *out)
{
struct point p;
double check, x, y;
check = fscanf(in, "%lf%lf", &p.x, &p.y);
p = create_point(x, y);
while (check != EOF)
{
if (is_positive(x, y) == 1)
{
fprintf(out, "%lf%lf", p.x, p.y);
check = fscanf(in, "%lf%lf", &p.x, &p.y);
}
}
}
所以这一次,我检查了这两个点是否为正,如果是,我打印出这些值。但是我在编译时遇到了这个错误,我不知道为什么。
file.c:4: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
file.c:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘is_positive’
file.c:32: error: expected ‘)’ before ‘*’ token