我必须编写一个带有单个命令行参数的程序。参数应该是要打开以供读取的文件的名称(如果未提供参数或无法打开文件,则打印错误消息)。
程序打开文件并读取每一行,直到到达 EOF。文件中的每一行都有两个 double 值,表示坐标平面上的一个点 对于每一行,读取这两个值,创建一个点,如果该点位于坐标平面的第一象限中,则打印该点。当它说“单个命令行参数”时,我对它的含义有点困惑,这是什么意思?我尝试为程序编写代码,但我不确定我是否做得对。
当我尝试编译我的代码时,它不断给我这些错误:
file.c:3: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
file.c:14: error: expected ‘)’ before ‘*’ token
这是我的代码:
#include "point.h"
FILE *open_file(char const name[], char const mode[])
{
FILE *file = fopen(name, mode);
if (file == NULL)
{
perror(name);
}
return file;
}
void point_in_Q1(FILE *in, FILE *out)
{
double x, y;
struct point p;
int check;
p = create_point(x, y);
while (check != EOF)
{
if (p.x >= 0 && p.y >= 0)
{
fprintf(out, "%lf%lf", x, y);
check = fscanf(in, "%lf%lf", &x, &y);
}
}
}
还有一件事我很困惑,如果我有一个名为“test_points.c”的坐标点值的文件,我是否必须将其放入 fopen(name, mode) 中?(代替“名称”)。